分布式集群时间同步

本文探讨了时钟不同步在分布式系统中的问题,特别是电商订单系统的例子,并提供了两种场景下的解决方案:一是利用互联网同步,二是设置集群内部时间服务器。通过ntpdate命令和配置文件调整,确保集群内各服务器时间一致性,防止数据错误。
摘要由CSDN通过智能技术生成

时钟不同步导致的问题

时钟此处指服务器时间,如果集群中各个服务器时钟不一致势必导致一系列问题。例如:

某一电商网站,新增⼀条订单,那么会在订单表中增加了一条记录,该条记录中应 该会有“下单时间”这样的字段, 往往我们会在程序中获取当前系统时间插入到数据库或者直接从数据库 服务器获取时间。那我们的订单子系统是集群化部署,或者我们的数据库也是分库分表的集群化部署, 然⽽他们的系统时钟缺不一致,必如有一台服务器的时间是昨天,那么这个时候下单时间就成了昨天, 那我们的数据将会混乱!

在这里插入图片描述

 

集群时钟同步配置

场景一:分布式集群中各个服务器节点都可以连接互联网

解决方式:所有服务器都与互联网时间保持一致,执行以下命令即可:

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

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

场景二:分布式集群中某一个服务器节点可以访问互联网或者所有节点都不能够访问互联网

解决方式:

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

步骤:1)首先设置好A的时间

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

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

2、添加如下几行内容

restrict 172.17.0.0 mask 255.255.255.0 nomodify notrap # 放开局域网同步功能,172.17.0.0是你的局域网网段

server 127.127.1.0 # local clock

fudge 127.127.1.0 stratum 10

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

service ntpd restart

chkconfig ntpd on

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

ntpdate 172.17.0.17

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值