這是堅持技術寫作計劃(含翻譯)的第9篇,定個小目標999,每週最少2篇。
背景描述
在公司測試伺服器除錯ahas(Sentinel商業版)時,發現頻發性無規律的出現Ahas控制檯【監控詳情】不顯示,甚至應用直接消失的問題。
開始以為是非Spring boot應用的問題(因為另外一個產品線是spring boot的,測試沒問題),反覆翻看開源sentinel的wiki和商業ahas的幫助文件 ,並且結合Sentinel的日誌排查,毫無頭緒。但是換成開源的Sentinel Dashboard沒問題
解決步驟
問題原因
上文提到的,Spring boot 可以,是因為其部署在阿里雲ecs上,而阿里雲主機預設都有ntp同步
而測試機連Sentinel 的Dashboard沒問題,換成ahas就有問題,是因為 Sentinel的client和dashboard,部署在同一臺伺服器,不存在時間差問題。
後來通過 @樂有 和 @雲寅 的幫助,定位到時鐘問題, 據 @樂有 介紹Sentinel允許的最大時間誤差是30s,而實驗中,測試機和北京時間誤差超過55s。
windows 自動同步時間及修改同步頻率
如果同步出錯,可以重啟一下 Windows Time
服務,再次同步。
但是過了半天后,時鐘又差1分鐘,所以需要調整一下NTP同步頻率
開啟登錄檔,找到 SpecialPollInterval
(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClien\SpecialPollInterval
)
發現預設值是 93a80
換成10進位制是 604800
(7天*24小時*60分鐘*60秒=604800
) ,改成300(5*60
)即可。
參考資料
招聘小廣告
山東濟南的小夥伴歡迎投簡歷啊 加入我們 , 一起搞事情。
長期招聘,Java程式設計師,大資料工程師,運維工程師,前端工程師。