一、分布式集群场景下时钟不同步会有什么问题?
如上面的示意图所示,分布式集群场景下如果各个服务器时间不一致,可能导致同一时间产生的数据,在处理过程中和数据库中,保存成了不同的时间,造成数据混乱。
二、集群时钟同步配置
场景1 每个节点都能连网
思路:每个节点都访问同一个时间服务器来同步自身的时间
操作:配置网络上的时间服务器,通过ntpdate命令
#使⽤ ntpdate ⽹络时间同步命令
ntpdate -u ntp.api.bz #从⼀个时间服务器同步时间
场景2 只有某一个节点能联网或者都不能联网
思路:把某一台服务器作为局域网内的时间服务器,其他服务器都跟它进行时间同步。如果这个节点能联网那么这个节点就从网络同步时间,不能联网则给其设置好一个时间。
操作:
- 假设用来作为内网时间服务器为A
- A能联网,则参照第一步为其设置好时间服务器。否则则手动为其设置时间
- 把A配置问时间服务器
#1、如果有 restrict default ignore,注释掉它
#2、添加如下⼏⾏内容
# 放开局域⽹同步功能,172.17.0.0是你的局域⽹⽹段
restrict 172.17.0.0 mask 255.255.255.0 nomodify notrap
# local clock
server 127.127.1.0
fudge 127.127.1.0 stratum 10
#3、重启⽣效并配置ntpd服务开机⾃启动
service ntpd restart
chkconfig ntpd on
- 将其他服务器的时间同步来源,设置为A
ntpdate 172.17.0.17
优化:给每个服务器节点,增加定时从服务器更新时间的定时任务
windows有计划任务,linux有定时任务crond