资料参考来源拉钩Java高薪训练营
文章目录
一、时钟不同步导致的问题
在分布式集群环境下,不同服务器的时间如果不一致,则产生的数据可能会发生错乱。
比如电商系统下单时,如果订单系统2个服务器时间不一致,一台服务器时间是2021-01-01 10:00:00,另一台时间为2020-01-02 10:00:00,那么两台服务器同时产生的两条订单数据不论是排序处理还是订单数据统计都乱了。
二、集群时钟同步
- 分布式集群中每个服务器节点都能连接互联网
可以每个服务器都从互联网上权威的时间服务器做同步,还可以在linux添加定时任务来同步。
#使⽤ ntpdate ⽹络时间同步命令
ntpdate -u ntp.api.bz #从⼀个时间服务器同步时间
- 分布式集群中某⼀个服务器节点可以访问互联⽹或者所有节点都不能够访问互联⽹
选取一个服务器节点作为时间服务器,其他服务器都从这个时间服务器进行同步。如果这台时间服务器可以连网,那么从互联网上同步时间,如果不能连网,那就只能手动设置时间服务器的时间,保证其他服务器和这台时间服务器的时间一致就可以了。
虚拟机配置为时间服务器:
1、修改/etc/ntp.conf,如果有 restrict default ignore,注释掉它
2、添加如下⼏⾏内容
restrict 192.168.137.0 mask 255.255.255.0 nomodify notrap # 放开局域⽹同步功能,192.168.137.0是你的局域⽹⽹段
server 127.127.1.0
Fudge 127.127.1.0 stratum 10
3、重启⽣效并配置ntpd服务开机⾃启动
service ntpd restart
chkconfig ntpd on
其他服务器就可以从这个服务器同步时间了:
ntpdate 192.168.137.10