資料變更白屏化利器-推送軌跡上線
作者: 子葵
背景
Zookeeper 可作為註冊配置中心,選主,分散式鎖等多種場景,隨著業務規模的擴大,業務之間的依賴關係逐漸變得複雜,在這種複雜的場景下如果遇到變更推送相關問題,排查起來相當困難,雖然 Zookeeper 原有的審計日誌能夠記錄 Znode 的變更記錄,但是無法查詢到服務端對變更的推送記錄,並且需要人工篩選,費時費力,長時間以來,使用者對 Zookeeper 更豐富的推送功能的可觀測性有了越來越強烈的需求。
MSE Zookeeper 最新上線推送軌跡能力,提供變更歷史,變更推送記錄,查詢記錄回溯能力,助力使用者排查配置註冊中心推送,變更回溯等難題。
推送軌跡功能介紹
Zookeeper 推送軌跡提供 Znode 變更和查詢記錄,以及服務端向客戶端推送變更事件的記錄,根據推送軌跡可以看到客戶端的變更是否成功,以及變更成功後,服務端是否將變更事件推送到客戶端,推送軌跡能夠根據 Path 和 SessionID 兩個維度查詢到對應的日誌記錄。
Path 查詢維度
提供對應的 Path 以及事件資訊,即可查詢對應的 Path 的變更記錄:
推送軌跡詳細展示了 Znode 變更的記錄資訊。在推送軌跡頁面左側,展示當前時間段內的 Znode 變更事件 ,點選左側變更流水可以定位到右側的變更及推送事件記錄。頁面右側,展示當前時間段內的 Znode 變更及推送事件,變更事件中顯示本次變更的型別,推送事件中展現推送發生事件,推送到的客戶端 SessionID。滑鼠上移推送詳情圖示可以檢視本地推送的事件型別等詳細資訊。
Session 查詢維度
在推送軌跡 Session 查詢維度頁面,展示該 Session 相關的推送軌跡 。變更時間表示本次 Znode 變更所發生的時間,變更事件表示本次 Znode 變更事件型別,Path 表示本次變更的 Znode Path,點選詳情列資訊按鈕可以看到詳情圖示可以看到本次變更事件詳細資訊,點選詳情列跳轉按鈕可以切換到 Path 維度查詢的入口查詢當前 Path 在該時間點的推送事件。
Zookeeper 推送軌跡最佳實踐
-
登入 MSE 管理控制檯。
-
在頂部選單欄選擇地域。
-
在左側選單欄選擇註冊配置中心 > 例項列表。單擊目標例項名稱或操作列下方的管理。
-
根據應用場景,對需要排查的 Znode 或者 Client SessionID 進行推送軌跡查詢
在微服務場景下,Zookeeper 經常被用作註冊配置中心,常碰到的一個問題就是,ZooKeeper 在例項變化之後,例項資訊更新的實效性問題,當我們需要排查 Zookeeper 是否將例項資訊的變更或者配置資訊的變更推送到客戶端以及變更和推送的時間點和變更推送的狀態時, 推送軌跡提供了這些資訊的回溯能力。例如 Dubbo 場景中 ZooKeeper 作為註冊中心,我們需要看到服務例項變更後,從 Zookeeper 獲取的例項資訊依然是舊的例項資訊,此時我們可以通過以下步驟查詢原因:
- 首先可以在控制檯找到對應的服務的 Path,
- 然後根據 Path 在推送軌跡中查詢對應 Znode 的變更和查詢記錄
例如我們需要知道 org.apache.dubbo.demo.DemoService 服務的變更推送記錄,在推送軌跡,選擇查詢維度 路徑,並在 Path 中輸入 /dubbo/org.apache.dubbo.demo.DemoService/providers 查詢對應的推送記錄,根據客戶端的 SessionID,可以檢視對應的變更是否引起服務端推送變更事件,由此確定變更是否成功,變更成功後,對應的客戶端是否成功收到服務端的變更事件推送,以及收到推送後是否向服務端進行查詢,由此確定客戶端是否更新本地的例項資訊。
再例如配置中心場景下,我們常遇到的問題是客戶端進行了配置變更,但是其他部分客戶端並沒有收到變更的推送,我們可以通過以下步驟查詢原因:
- 首先通過變更客戶端的 SessionId 找到對應的變更記錄,點選箭頭按鈕,跳轉到此次變更對應的路徑查詢維度推送軌跡,確定配置變更是否成功。
- 跳轉之後我們看到對應的變更記錄的推送詳情,此時我們可以確定沒有收到變更的客戶端是否在推送客戶端的集合中,如果沒有,則說明推送時客戶端與服務端連線斷開,導致 Session 超時被服務端摘掉了,如果事件被成功推送了,接下來檢視客戶端是否進行新配置的查詢,如果沒有查詢,就需要從客戶端進行排查。
根據以上的排查就可以大致定位問題所在,推送軌跡大大地簡化了問題排查的流程。
後續,註冊和配置中心還將提供全新的自診系統,包括事件統計、健康審計等功能,幫助使用者更加全面的獲取註冊和配置中心執行時上更多的業務功能狀態資料資訊,降低註冊和配置中心的問題排查難度、提升可用性。
99 大促活動:新客戶包年 7 折,包月 8 折, 歡迎試用,有問題歡迎掃描釘釘二維碼 (34754806)和我們交流~
- 從 JDK 9 到 19,我們幫您提煉了和雲原生場景有關的能力列表(上)
- 統一觀測丨如何使用Prometheus 實現效能壓測指標可觀測
- CNStack 2.0:雲原生的技術中臺
- 全景剖析阿里雲容器網路資料鏈路(五):Terway ENI-Trunking
- 全景剖析阿里雲容器網路資料鏈路(四):Terway IPVLAN EBPF
- 全景剖析阿里雲容器網路資料鏈路(三):Terway ENIIP
- 談談我工作中的23個設計模式
- 雲邊協同下的統一應用管理:基於 OpenYurt 和 KubeVela 的解決方案
- OpenKruise v1.3:新增自定義 Pod Probe 探針能力與大規模叢集效能顯著提升
- Koordinator v0.7: 為任務排程領域注入新活力
- 傳統大型國企雲原生轉型,如何解決彈性、運維和團隊協同等問題
- Dubbo 3 易用性升級之 Dubbo 官網大改版
- 阿里雲容器服務 ACK 產品技術動態(202208)
- RocketMQ Streams在雲安全及 IoT 場景下的大規模最佳實踐
- RocketMQ 5.0:無狀態代理模式的探索與實踐
- Apache RocketMQ 5.0 在Stream場景的儲存增強
- 快手 RocketMQ 高效能實踐
- RocketMQ DLedger架構在小米的大規模實踐
- 定時任務報警通知解決方案詳解
- Dubbo Mesh 總體技術架構方案