中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何分析Controller Manager 中的SharedInformer結構

發布時間:2021-12-15 18:52:45 來源:億速云 閱讀:121 作者:柒染 欄目:云計算

如何分析Controller Manager 中的SharedInformer結構,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

絕大多數Controller的實現都依賴一種特殊結構-SharedInformer,它主要負責訂閱etcd上資源的變更并調用注冊的Handlers。

SharedInformer相關的類結構如下圖:

SharedInformer是一個復雜的嵌套結構,自底向上總共包含四層

Queue

DeltaFIFO結構實現了Queue(以及Store)接口,在內部使用一個叫做items的map來存儲Delta數據。items的key是通過一個預先傳入的keyFunc對每個入隊的object計算出來的。

基于map的存儲結構能夠使得DeltaFIFO快速檢索到任意一個內部元素(這也是為了實現Store接口),同時queue存儲了元素的進入順序。

Reflector

Reflector結構能夠通過listWatcher監控etcd上的變更,實時同步到本地的store結構中。

Controller

Controller初始化了一個DeltaFIFO結構,并將它作為store創建了一個Reflector結構,用來監控特定的etcd資源的變更。listWatcher觀察到的變更會被存儲到DeltaFIFO中,同時Controller會不斷消費DeltaFIFO中的元素,將它作為入參call構造時傳入的Process Func。

sharedIndexInformer

sharedIndexInformer實現了SharedInformer接口,它用自己的HandleDeltas()方法作為Process Func來構造Controller。Controller檢測到的所有資源變更都會回調sharedIndexInformer.HandleDeltas()。

indexer是一種cache結構,它存儲了監控資源的最新數據。當Controller接收到變更的時候,可以通過indexer來獲取變更數據在變更前的值。

sharedProcessor用來存儲所有注冊的Listener。當HandleDeltas被回調時,會觸發sharedProcessor上的distribute()方法,來最終調用所有注冊的Listeners。

通過以上四種數據結構的配合使用,最終實現了從資源監控到Listener回調的整個數據鏈路。

如何分析Controller Manager 中的SharedInformer結構

關于如何分析Controller Manager 中的SharedInformer結構問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

集贤县| 夏津县| 海丰县| 永吉县| 淮安市| 双牌县| 奎屯市| 西平县| 安泽县| 崇仁县| 杭锦旗| 卓尼县| 哈巴河县| 库尔勒市| 历史| 伊宁县| 南阳市| 大名县| 九寨沟县| 文山县| 内黄县| 和田市| 克山县| 渑池县| 镇雄县| 安仁县| 循化| 济阳县| 墨江| 敖汉旗| 刚察县| 稷山县| 黄石市| 阿合奇县| 延长县| 池州市| 大兴区| 杭锦后旗| 怀远县| 阿坝| 怀宁县|