亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

如何分析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

温宿县| 富阳市| 淮滨县| 镶黄旗| 西贡区| 龙胜| 砀山县| 阜平县| 荔浦县| 新建县| 敦煌市| 巴彦县| 会理县| 灵璧县| 台江县| 宝坻区| 荆州市| 铜梁县| 陇川县| 田林县| 乐山市| 清镇市| 永顺县| 双桥区| 涟源市| 蒙阴县| 朝阳市| 霍城县| 水富县| 文登市| 浮山县| 稻城县| 泗水县| 察哈| 新密市| 德令哈市| 信阳市| 海晏县| 密山市| 金堂县| 景洪市|