集群环境下时间同步问题解决

1.场景介绍

比如说我现在项目部署在若干的服务器上面,然后构成整个集群,如果我们每台服务器的时间不一致,我们在业务代码里面拿到的时间也就不一致,这时候不管我们往数据库插入数据的create_time 还是修改数据update_time 还是我们使用时间计算,定时任务等等都会发生错乱,造成数据错乱,所以我们需要对集群下的服务器时间进行同步。
我们对时间同步分为两种情况,一是所有的服务都能连接外网,二就是有一台服务器能够连接外网,其余服务器能够与这台机器内网通信

2. 服务器均能连接外网

所有机器都能够访问外网的话,我们可以使用ntpdate 来进行时间同步
前提是我们服务器上面有ntp ,如果没有的话可以使用yum 安装

yum  install ntp -y

如果安装了可以执行ntpdate命令查看
在这里插入图片描述
执行命令进行同步

ntpdate -u ntp.api.bz

其中ntp一种网络时间协议,ntpdate 是时间同步软件的命令, ntp.api.bz 是个稳定的ntp时间同步服务器集群。
在这里插入图片描述
当然你可以使用linux系统的定时任务来设置每隔多长时间同步一次,使用linux系统下使用crontab -e 可以编辑任务。
这里我是用crontab -e 添加了一个定时每分钟同步时间的任务 ,然后将执行日志写到了/data/c1.log下面

 */1 * * * * /usr/sbin/ntpdate -u ntp.api.bz >/data/c1.log

格式: cron表达式 command
在这里插入图片描述
我们可以看一下/data/c1.log 里面的执行日志
在这里插入图片描述

3.一台机器能连接外网

我们把这台能连接外网的服务器当作时间服务器,整个集群服务器向该时间服务器同步时间,然后咱们内网的这台时间服务器向公网时间服务器同步时间,然后内网时间服务器不能联网,则自己设置时间,所有的集群服务器以它的时间为准。
在这里插入图片描述

3.1 内网时间服务器配置

如果服务器有ntpdate 建议使用yum install ntp -y 安装下
这里需要修改/etc/ntp.conf文件

# 这里192.168.3.0 是内网网段,然后这个只能被内网这个网段访问,我这边内网网段是192.168.3.0 的
restrict 192.168.3.0 mask 255.255.255.0 nomodify notrap    
server 127.127.1.0
fudge 127.127.1.0 stratum 10

然后重启ntpd服务,将ntpd服务设置开机自启

 systemctl restart ntpd
 systemctl enable ntpd     

在这里插入图片描述

3.2 其他服务器同步

我们内网的集群服务器可以使用ntpdate命令来进行时间同步。

ntpdate 内网时间服务地址

我这边内网的时间服务器是192.168.3.39
所以就是ntpdate 192.168.3.39
在这里插入图片描述

  • 13
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

$码出未来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值