色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Sentinel擴展性設計機制分析

電子設計 ? 2018-10-26 10:03 ? 次閱讀

Sentinel 提供多樣的 SPI 接口用于提供擴展的能力。用戶可以在用同一個 sentinel-core 的基礎上自行擴展接口實現,從而可以方便地給 Sentinel 添加自定義的邏輯。 初始化邏輯擴展機制 為了統一初始化的流程,我們抽象出了 InitFunc 接口代表 Sentinel 的一些初始化邏輯,如: 注冊動態規則源(示例) 注冊 StatisticSlot 回調函數(示例) 啟動 Command Center 初始化心跳發送 我們可以通過注解設置 InitFunc 執行的優先級。

Sentinel 提供多樣的 SPI 接口用于提供擴展的能力。用戶可以在用同一個 sentinel-core 的基礎上自行擴展接口實現,從而可以方便地給 Sentinel 添加自定義的邏輯。

初始化邏輯擴展機制

為了統一初始化的流程,我們抽象出了 InitFunc 接口代表 Sentinel 的一些初始化邏輯,如:

注冊動態規則源(示例)

注冊 StatisticSlot 回調函數(示例)

啟動 Command Center

初始化心跳發送

我們可以通過注解設置 InitFunc 執行的優先級。當應用首次訪問資源時,注冊的初始化函數會依次執行。若希望手動提前觸發初始化,可以在相應的位置(如 Spring Bean)調用 InitExecutor.doInit() 函數,重復調用只會執行一次。

Slot Chain 擴展機制

Sentinel 內部是通過一系列的 slot 組成的 slot chain 來完成各種功能的,包括構建調用鏈、調用數據統計、規則檢查等。各個 slot 之間的順序非常重要。Sentinel 將 SlotChainBuilder 作為 SPI 接口進行擴展,使得 Slot Chain 具備了擴展的能力。用戶可以自行加入自定義的 slot 并編排 slot 間的順序,從而可以給 Sentinel 添加自定義的功能。

比如我們想要在請求 pass 后記錄當前的 context 和資源信息,則可以實現一個簡單的 slot:

然后實現一個 SlotChainBuilder,可以在 DefaultSlotChainBuilder 的基礎上將我們新的 slot 添加到鏈的尾部(當然也可以不用 DefaultSlotChainBuilder,自由組合現有的 slot):

最后在 resources/META-INF/services 目錄下的 SPI 配置文件 com.alibaba.csp.sentinel.slotchain.SlotChainBuilder 中添加上實現的 SlotChainBuilder 的類名即可生效:

# Custom slot chain builder

com.alibaba.csp.sentinel.demo.slot.DemoSlotChainBuilder

Sentinel 的熱點限流模塊就是利用了 Slot Chain 的擴展機制來將熱點限流功能添加到原有的功能鏈中。

StatisticSlot Callback

之前 StatisticSlot 里面包含了太多的邏輯,像普通 QPS 和 熱點參數 QPS 的 addPass/addBlock 等邏輯統計都在 StatisticSlot 里面,各個邏輯都雜糅在一起,不利于擴展。因此有必要為 StatisticSlot 抽象出一系列的 callback,從而使 StatisticSlot 具備基本的擴展能力,并將一系列的邏輯從 StatisticSlot 解耦出來,更為清晰。目前 Sentinel 提供了兩種 callback:

ProcessorSlotEntryCallback:包含 onPass 和 onBlocked 兩個回調函數,分別對應請求通過 StatisticSlot 和請求被 blocked 的時候執行。

ProcessorSlotExitCallback:包含 onExit 回調函數,當請求經 StatisticSlot exit 的時候執行。

用戶只需將實現的 callback 注冊到 StatisticSlotCallbackRegistry 即可生效。

動態規則源

Sentinel 的 動態規則數據源 用于從外部的存儲中讀取及寫入規則。Sentinel 將動態規則數據源劃分為兩種類型:讀數據源(ReadableDataSource)和寫數據源(WritableDataSource),從而使不同類型的數據源職責更加清晰:

讀數據源僅負責監聽或輪詢讀取遠程存儲的變更。

寫數據源僅負責將規則變更寫入到規則源中。

我們只需要自己實現動態規則源,然后將其注冊至對應的 RuleManager 上,這樣就可以實時地配置規則并進行拉取/推送了。注冊動態規則源時可以借助 Sentinel 的 InitFunc SPI 在初始化時自動注冊。

Transport 擴展機制

CommandCenter 可擴展:用戶可以用不同的網絡協議或不同的庫來實現 Transport API Server。

HeartbeatSender 可擴展:用戶可以用不同的網絡協議和心跳策略來實現心跳發送(上報到控制臺)。

CommandHandler 可擴展:用戶可以自行實現 CommandHandler 并注冊到 SPI 配置文件中來為 CommandCenter 添加自定義的命令。

作者:云棲社區 中間件小哥

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • SPI接口
    +關注

    關注

    0

    文章

    259

    瀏覽量

    34417
  • Sentinel
    +關注

    關注

    0

    文章

    10

    瀏覽量

    7159
收藏 人收藏

    評論

    相關推薦

    Facebook的擴展性挑戰討論

    今天我們一起來了解Facebook背后的軟件,看看作為當今世界上訪問量最大的網站之一,Facebook是如何保證5億用戶的系統一直穩定可靠的運行。 Facebook的擴展性挑戰
    發表于 07-17 07:22

    支持多內核可擴展性的網關,不看肯定后悔

    支持多內核可擴展性的網關,不看肯定后悔
    發表于 05-25 06:49

    請問處理器擴展性有什么重要之處?

    處理器擴展性有什么重要之處?
    發表于 06-17 09:51

    多機飛行仿真系統擴展性研究

    針對以往多機飛行仿真系統中存在擴展性差的問題,在利用新一代分布式仿真技術框架結構開發該系統的基礎上,采用時間同步和數據過濾的方式來提高系統的擴展性。從基于HLA 協議開
    發表于 05-12 17:06 ?22次下載
    多機飛行仿真系統<b class='flag-5'>擴展性</b>研究

    OpenStack 企業私有云需大規模擴展性支持

    擴展性(Scalability)是云的基本要素之一,因此對 OpenStack 云也不例外。 一方面,和已經非常成熟的公有云和私有云方案相比,目前的 OpenStack 在擴展性方面還有很多的不足
    發表于 10-11 10:25 ?0次下載
    OpenStack 企業私有云需大規模<b class='flag-5'>擴展性</b>支持

    基于軟件定義網絡控制可擴展性研究

    問題,對SDN控制平面可擴展性相關工作進行綜述.首先分析控制平面可擴展性的影響因素并給出改善思路:在此基礎上,從數據平面緩存優化、高性能控制器、分布式控制平面和控制資源優化分配4種技術路線出發,論述了主要的解決方案和研究進展,最
    發表于 12-19 18:07 ?0次下載
    基于軟件定義網絡控制可<b class='flag-5'>擴展性</b>研究

    為什么區塊鏈擴展性如此困難

    擴展性的爭論遍及整個數字貨幣社區。隨著一些重大事件的發生,在短短幾天時間內,就會導致整個以太網絡的崩潰,比如CryptoKitties。正如大家所知道的,當前狀態下最大的公共區塊鏈不能處理過多的事務,因此需要擴展
    發表于 12-13 14:51 ?1274次閱讀

    如何使用BPL和DLL進行程序的擴展性資料說明

    本文檔的主要內容詳細介紹的是如何使用BPL和DLL進行程序的擴展性資料說明。
    發表于 05-17 18:05 ?0次下載
    如何使用BPL和DLL進行程序的<b class='flag-5'>擴展性</b>資料說明

    區塊鏈可擴展性的要點分別是什么

    大多數關于可擴展性的討論都圍繞著各種平臺每秒可以處理的交易數量。
    發表于 10-31 09:31 ?2508次閱讀

    如何提高比特幣的可擴展性

    多年來,比特幣社區就如何提高比特幣的可擴展性提出了各種各樣的建議,但總體上還沒有能夠達成全面共識。這就是為什么我們目前有幾個類似比特幣的網絡從原始網絡分支出來。
    發表于 03-07 08:54 ?1370次閱讀

    區塊鏈可擴展性有怎樣的要點

    很難說誰的可擴展性方法最終會更可行。然而,如果每個參與者都認識到存在的選擇比表面上的要多,那就更好了。
    發表于 03-07 14:40 ?815次閱讀

    影響軟件高可擴展性的六大因素

    軟件可擴展性是一個有趣的話題。實現軟件可擴展性涉及很多因素,我們在本文將討論一些與開發和運維方面相關的因素。
    的頭像 發表于 02-17 16:13 ?8763次閱讀
    影響軟件高可<b class='flag-5'>擴展性</b>的六大因素

    什么是可擴展性,為什么它很重要

    擴展性是按需輕松擴展或升級的能力。它是產品、系統、團隊或公司提供滿足不斷增長的需求的服務的能力。提供足夠的基礎設施來滿足更苛刻的IT要求,例如增加存儲和安全性,同時保持低成本,是數據中心運營商的日常斗爭。
    的頭像 發表于 04-21 10:36 ?5105次閱讀
    什么是可<b class='flag-5'>擴展性</b>,為什么它很重要

    SD-WAN組網的可擴展性怎么樣?

    SD-WAN組網具有很好的可擴展性,能夠輕松滿足企業網絡不斷擴張和增長的需求,同時保持網絡的高效和可管理性,這使得SD-WAN組網能夠隨著企業的快速發展而快速調整規模,變更拓撲,采取不同的接入方式等
    的頭像 發表于 08-18 11:29 ?536次閱讀

    擴展性對物聯網管理系統有哪些影響?

    擴展性對于物聯網管理系統的設計和開發非常重要,它直接影響著系統的性能、可靠性和能耗等方面,是評估一個系統優劣的重要因素之一。可擴展性對物聯網管理系統的影響主要體現在以下幾個方面:
    的頭像 發表于 10-11 15:15 ?529次閱讀
    主站蜘蛛池模板: 好男人好资源在线观看免费视频| 麻豆精品乱码WWW久久密| 成人在线视频在线观看| 动漫H片在线播放免费高清| 国产电影尺度| 伦理片秋霞免费影院| 欧美日韩久久久精品A片| 婷婷激情综合色五月久久竹菊影视| 亚欧乱亚欧乱色视频| 伊人久久综合网站| xxx日本黄色| 国模精品一区二区三区视频| 麻豆COMCN| 甜性涩爱在线播放| 中文字幕一区二区三区在线播放| 成年免费三级视频| 久久热在线视频精品| 色美妞论坛| 97午夜精品| 国产在线亚洲精品观看不卡| 快播av种子大全| 特级做A爰片毛片免费69| 中文字幕久精品视频在线观看| 国产成人精选免费视频| 久久草这在线观看免费| 婷婷激情综合色五月久久竹菊影视| 67194在线入口免费| 国产精一品亚洲二区在线播放| 第四色播日韩AV第一页| 大胸美女洗澡扒奶衣挤奶| 精品久久香蕉国产线看观看麻豆| 免费中文字幕视频| 小s现场抛胸挤奶| 97国产成人精品视频| 国产香蕉视频在线观看| 青年医生插曲| 亚洲人成77777在线视频| www.99在线| 簧片在线免费观看| 日本老师xxxxx18| 99精品电影|