背景
如果叢集中各個伺服器時鐘不⼀緻勢必導緻⼀系列問題,試想 “叢集是各個伺服器⼀起團隊化作戰,⼤家⼯作都不在⼀個點上,豈不亂了套! ”舉⼀個例⼦,電商⽹站業務中,新增⼀條訂單,那麼勢必會在訂單表中增加了⼀條記錄,該條記錄中應該會有“下單時間”這樣的字段,往往我們會在程式中擷取目前系統時間插⼊到資料庫或者直接從資料庫伺服器擷取時間。那我們的訂單⼦系統是叢集化部署,或者我們的資料庫也是分庫分表的叢集化部署,然⽽他們的系統時鐘缺不⼀緻,⽐如有⼀台伺服器的時間是昨天,那麼這個時候下單時間就成了昨天,那我們的資料将會混亂!
叢集時鐘同步配置
場景一: 分布式叢集中各個伺服器節點都可以連接配接互聯⽹
思路: 向國家授時中心或某一台時間伺服器進行時間同步
操作方式:
#使⽤ ntpdate ⽹絡時間同步指令
ntpdate -u ntp.api.bz #從⼀個時間伺服器同步時間
場景二:分布式叢集中隻有一台伺服器節點可以通路網際網路,其他伺服器節點不能通路網際網路
思路: 可以聯網的機器向國家授時中心或某一台時間伺服器進行時間同步,叢集中的其他伺服器節點向該節點進行時間同步
操作方式:
可以聯網的伺服器節點執行網絡時間同步指令
== ntpdate -u ntp.api.bz ==
将該伺服器設定成時間伺服器**修改/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
場景三:分布式叢集中的所有伺服器節點都無法通路網際網路
思路: 手動設定其中一台伺服器節點的時間,并将該伺服器設定成時間伺服器
操作方式: 同上述場景二