91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

茌平县| 玉环县| 鄂托克旗| 巴林右旗| 永福县| 德庆县| 全椒县| 佳木斯市| 上饶市| 和林格尔县| 漾濞| 古蔺县| 余庆县| 枣强县| 大新县| 马边| 安阳县| 山阳县| 溧水县| 电白县| 浦北县| 渝中区| 永平县| 合水县| 达孜县| 射洪县| 东平县| 清新县| 瑞昌市| 军事| 天祝| 云和县| 安平县| 阜康市| 岑巩县| 太康县| 繁峙县| 凌云县| 晋中市| 安丘市| 故城县|