【Java高级工程师蜕变之路】027 分布式集群同步时钟问题


时钟不同步导致的问题

时钟这里指的是服务器时间

时钟不一致问题示例,订单

集群时钟同步配置

集群时钟同步思路

1、分布式集群中各个服务器节点都可以连接互联网,思路如下

操作方式

#使用 ntpdate 网络时间同步命令
ntpdate -u ntp.api.bz #从一个时间服务器同步时间

windows有计划任务

Linux也有定时任务,crond,可以使用linux的定时任务,每隔10分钟执行一次ntpdate命令

2、分布式集群中某一个服务器节点可以访问互联网或者所有节点都不能够访问互联网,思路如下:

操作方式

选取集群中的一个服务器节点A(172.17.0.17)作为时间服务器(整个集群时间从这台服务器同步,如果这台服务器能够访问互联网,可以让这台服务器和网络时间保持同步,如果不能就手动设置一个时间)

首先设置好A的时间

把A配置为时间服务器(修改/etc/ntp.conf文件)

 
1、如果有 restrict default ignore,注释掉它 

2、添加如下几行内容
# 放开局域网同步功能,172.17.0.0是你的局域网网段
restrict 172.17.0.0 mask 255.255.255.0 nomodify notrap 

server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10 

3、重启生效并配置ntpd服务开机自启动
service ntpd restart
chkconfig ntpd on

集群中其他节点就可以从A服务器同步时间了

ntpdate 172.17.0.17