Dubbo + ZooKeeper丨如何解決線上故障排查鏈路長的難題

作者:子葵

背景

ZooKeeper 作爲通用的元數據存儲組件,用途廣泛,是 Dubbo 最早支持的註冊中心之一,經過長時間的磨合,目前 Dubbo 和 ZooKeeper 的組合具有很好的穩定性和擴展性。

ZooKeeper 作爲 Dubbo 註冊中心時,由於開源 ZooKeeper 沒有提供服務註冊的邏輯模型,因此對 Dubbo 服務的管理成本比較高,存在問題排查鏈路長等一系列治理問題。針對這些問題,MSE ZooKeeper 最新提供 Dubbo 服務管理能力,同時結合 TopN 監控大盤,推送軌跡等自治能力,幫助用戶提高問題排查速度,集羣運維效率。

服務管理

通過實例詳情頁中的數據管理中的服務管理來查看 ZooKeeper 中註冊的服務,以及服務的提供者,訂閱者信息。服務詳情頁展示對應的服務名以及服務類型,目前只支持 Dubbo,未來還會支持更多的服務註冊類型,單擊服務名進入服務詳情頁面。

image.png

服務詳情頁面展示了,服務的元信息,包含服務的版本,分組,應用名等信息,支持多個分組,版本展示。服務提供者信息通過更加合理的表格結構化展示,並且可以實時看到實例的上下線,權重,超時時間等信息,能夠更加清晰的掌握應用的配置信息。

image.png

如果您想對 Dubbo 服務進行精細化的治理,可以將您的 Dubbo 服務接入 MSE 微服務治理。在接入服務治理的情況下,您可以通過點擊接口詳情按鈕來跳轉到微服務治理對應的頁面,查看您的 Dubbo 服務的詳細數據信息,包含服務的 QPS、延時、成功率、併發等信息。

image.png

如果您的 Dubbo 應用遇到了一些線上問題,需要在保留現場的場景下進行問題定位。您可以在跳轉後的微服務治理對應的界面中找到節點詳情菜單。選擇出現問題的實例,通過右側的服務下線按鈕進行下線操作。這樣就可以將出問題實例的流量摘除掉,在既保留現場又不影響業務的情況下進行問題定位。

image.png

結合 MSE 服務治理能力,能夠輕鬆實現服務的無損傷上下線,灰度發佈,使得發佈過程中更加平滑,風險降低。同時結合推送軌跡功能方便查詢服務提供者的上下線記錄,能夠協助排查註冊不上,重複註冊,服務下線但是註冊中心中數據未刪除,頻繁變更等場景。

image.png

同時通過查詢訂閱者的推送軌跡我們直觀看到每次服務上下線被推送的客戶端情況。

image.png

同時 MSE ZooKeeper 增強了穩定性,對於異常的註冊場景,Server 提供防護能力,防止因爲業務側異常導致服務宕機。

例如,某用戶由於代碼缺陷導致 Dubbo Service Refrence 泄漏,ZooKeeper 中存在大量泄露的 Reference 創建的臨時節點,並且由於 ZooKeeper 同步機制中的限制(可參考ZooKeeper 避坑指南,jute.maxbuffer 的設置文章),導致服務宕機,MSE ZooKeeper 針對這種極端情況做了 Server 側的自我保護,在 Reference 泄漏的情況下會限制業務註冊的無用的數據,保證 Server 的穩定性。

問題排查

對於極端情況下問題的排查,MSE ZooKeeper 提供豐富的 TopN 大盤,結合上述的推送軌跡能力,能夠幫助用戶快速找到問題源頭。 例如在 Dubbo Service Refrence 這種場景下,我們首先可以根據 TopN 大盤中的 Session Tps TopN 確定泄漏的 refrence 是由哪一個客戶端產生的。

image.png

之後我們通過此客戶端的 SessionId,在推送軌跡中查詢對應的變更記錄,並通過變更記錄找到問題的原因。

image.png

從推送軌跡中我們可以看到異常 session 創建的所有的 path,從 path 中包含的信息可以快速溯源到源客戶端,從而找到問題原因。

歡迎感興趣的同學掃描下方二維碼加入釘釘交流羣,一起參與探討交流。

image.png

MSE 3月採購季優惠

【0元試用】

服務治理試用版,開通後 15 天免費使用。

【新老同享】

服務治理資源包:專業版/(7200Agent*小時)67.5 元。

註冊配置中心資源包:開發版/規格1c2g 76.7 元。

【首購專享】

註冊配置中心專業版,引擎類型 Nacos,包年包月 6 折。

註冊配置中心專業版,引擎類型 ZooKeeper,包年包月 5 折。

雲原生網關,包年包月 6 折。

服務治理資源包(按量抵扣),包年包月 6 折。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章