那些年我們忽略的集群時鐘不同步問題

2021-10-06 08:11:02 字數 1571 閱讀 8838

時鐘指的是伺服器時間,當集群中的各個伺服器之間的時鐘不一致的時候必然會導致一些問題。

我們以電商為例,當有三個併發同時請求服務求來下單,請求通過ngnix**分別分發到不同的服務上,而此時伺服器的時間是不一致的,時間如下圖分別為五點,八點和十點,請求處理過程中我們會把伺服器的當前時間當做訂單的建立時間儲存到資料庫中,那麼當我們根據訂單的建立時間進行排序的時候就會出現問題,存在訂單順序錯亂的問題。

為了解決上述問題我們需要把集群中的時間設定為一致的。

集群時鐘同步總體可分為以下三種情況

下面我們分別對這三種情況進行詳細的介紹

如果伺服器都可以聯網我們可以讓每個節點都去同步某乙個網路時間伺服器的時間,如下圖

同步網路時間的命令

ntpdate -u 時間伺服器
如果 ntpdate 命令不存,執行以下命令安裝

yum install ntpdate -y
檢視修改時間

檢視: date

修改: date -s '10:10:10'

同步時間

ntadate - ntp.api.bz
分享幾個常用的時間伺服器

中國國家授時中心:210.72

.145

.44ntp伺服器(上海) :ntp.api.bz

美國:time.nist.gov

復旦:ntp.fudan.edu.cn

微軟公司授時主機(美國) :time.windows.com

為了避免手動修改時間我們可以把同步時間加入crontab 定時任務

每小時執行一次

echo "*/60 * * * * /usr/sbin/ntpdate -u ntp.api.bz >/dev/null &"

>>

/var/spool/cron/root

情況2和情況3類似這裡我們一起說明下

聯網的伺服器去同步網路時間,如果不能聯網就手動設定伺服器時間,其他服務節點同步可聯網服務節點的時間。

同步網路時間和 2.1 的步驟一樣,手動設定伺服器時間命令是date -s 『時間』這裡不再贅述,這裡主要講下怎麼從其他節點同步時間。

選取集群中的⼀個伺服器節點server0(192.168.0.10)作為時間伺服器.

集群中的其他節點就可以從server0同步時間

ntpdate 192.168

.0.10

那些年的我們

1992年我小學畢業,小學的名稱叫四村小學,雖然曾經的四村小學已經不在了,但是他永遠在我們的心中。那個時代,我們沒有手機也沒有智慧型相機,拍照是一種奢侈的事情,只有畢業的時候才有機會拍照。2002年我初中畢業,初中的名稱叫四村中學,雖然曾經的四村中學已經改名了,但是留在四村中學的回憶還是那麼多。初中...

那些年我們用過的SSD

具體資訊如下 從比較中刪除 essentials 狀態launched 順序讀取 500 mb s 順序寫入 315 mb s 隨機讀取 100 跨度 75000 iops 隨機寫入 100 跨度 9000 iops 延遲 讀取 50 s 延遲 寫入 65 s 電源 活動 3.5w 電源 閒置 0....

那些年我們玩過的遊戲

高中雖然緊張,但是那個時候,魔獸還有lol開始流行,只不過我們班級的人都很喜歡夢三國,都是類似的,不算養成遊戲,這種即時戰的遊戲,讓我們不必花費大精力去攢經驗攢裝備,每一場遊戲都是重頭開始,讓我們感覺很公平。魔獸我只玩過冰封王座,後來發現有海賊王的地圖和角色,就開始玩 狠角色 用海賊的角色很有意思。...