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

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.一台机器能连接外网

我们把这台能连接外网的服务器当作时间服务器,整个集群服务器向该时间服务器同步时间,然后咱们内网的这台时间服务器向公网时间服务器同步时间,然后内网时间服务器不能联网,则自己设置时间,所有的集群服务器以它的时间为准。
集群环境下时间同步问题解决_第1张图片

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
在这里插入图片描述

你可能感兴趣的:(其他,ntp,时间同步,ntpdate,ntp服务)