99久久久久国产-99久久久久国产精品免费-99久久久久久久-99久久久免费精品免费-99久久免费费视频在线观看

131 1300 0010
其他電源
當(dāng)前位置: 首頁(yè)>> 電源技術(shù)>>其他電源>>
  • 導(dǎo)航欄目
  • 逆變電源
  • 開(kāi)關(guān)電源
  • 電機(jī)伺服
  • 其他電源
  • Sentinel擴(kuò)展性設(shè)計(jì)機(jī)制分析
    Sentinel擴(kuò)展性設(shè)計(jì)機(jī)制分析
  • Sentinel擴(kuò)展性設(shè)計(jì)機(jī)制分析
  •   發(fā)布日期: 2018-10-26  瀏覽次數(shù): 1,363

      Sentinel 提供多樣的 SPI 接口用于提供擴(kuò)展的能力。用戶(hù)可以在用同一個(gè) sentinel-core 的基礎(chǔ)上自行擴(kuò)展接口實(shí)現(xiàn),從而可以方便地給 Sentinel 添加自定義的邏輯。 初始化邏輯擴(kuò)展機(jī)制 為了統(tǒng)一初始化的流程,我們抽象出了 InitFunc 接口代表 Sentinel 的一些初始化邏輯,如: 注冊(cè)動(dòng)態(tài)規(guī)則源(示例) 注冊(cè) StatisticSlot 回調(diào)函數(shù)(示例) 啟動(dòng) Command Center 初始化心跳發(fā)送 我們可以通過(guò)注解設(shè)置 InitFunc 執(zhí)行的優(yōu)先級(jí)。

      Sentinel 提供多樣的 SPI 接口用于提供擴(kuò)展的能力。用戶(hù)可以在用同一個(gè) sentinel-core 的基礎(chǔ)上自行擴(kuò)展接口實(shí)現(xiàn),從而可以方便地給 Sentinel 添加自定義的邏輯。

     

      初始化邏輯擴(kuò)展機(jī)制

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

      注冊(cè)動(dòng)態(tài)規(guī)則源(示例)

      注冊(cè) StatisticSlot 回調(diào)函數(shù)(示例)

      啟動(dòng) Command Center

      初始化心跳發(fā)送

      我們可以通過(guò)注解設(shè)置 InitFunc 執(zhí)行的優(yōu)先級(jí)。當(dāng)應(yīng)用首次訪(fǎng)問(wèn)資源時(shí),注冊(cè)的初始化函數(shù)會(huì)依次執(zhí)行。若希望手動(dòng)提前觸發(fā)初始化,可以在相應(yīng)的位置(如 Spring Bean)調(diào)用 InitExecutor.doInit() 函數(shù),重復(fù)調(diào)用只會(huì)執(zhí)行一次。

      Slot Chain 擴(kuò)展機(jī)制

      Sentinel 內(nèi)部是通過(guò)一系列的 slot 組成的 slot chain 來(lái)完成各種功能的,包括構(gòu)建調(diào)用鏈、調(diào)用數(shù)據(jù)統(tǒng)計(jì)、規(guī)則檢查等。各個(gè) slot 之間的順序非常重要。Sentinel 將 SlotChainBuilder 作為 SPI 接口進(jìn)行擴(kuò)展,使得 Slot Chain 具備了擴(kuò)展的能力。用戶(hù)可以自行加入自定義的 slot 并編排 slot 間的順序,從而可以給 Sentinel 添加自定義的功能。

      

      比如我們想要在請(qǐng)求 pass 后記錄當(dāng)前的 context 和資源信息,則可以實(shí)現(xiàn)一個(gè)簡(jiǎn)單的 slot:

      

      然后實(shí)現(xiàn)一個(gè) SlotChainBuilder,可以在 DefaultSlotChainBuilder 的基礎(chǔ)上將我們新的 slot 添加到鏈的尾部(當(dāng)然也可以不用 DefaultSlotChainBuilder,自由組合現(xiàn)有的 slot):

      

      最后在 resources/META-INF/services 目錄下的 SPI 配置文件 com.alibaba.csp.sentinel.slotchain.SlotChainBuilder 中添加上實(shí)現(xiàn)的 SlotChainBuilder 的類(lèi)名即可生效:

      # Custom slot chain builder

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

      Sentinel 的熱點(diǎn)限流模塊就是利用了 Slot Chain 的擴(kuò)展機(jī)制來(lái)將熱點(diǎn)限流功能添加到原有的功能鏈中。

      StatisticSlot Callback

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

      ProcessorSlotEntryCallback:包含 onPass 和 onBlocked 兩個(gè)回調(diào)函數(shù),分別對(duì)應(yīng)請(qǐng)求通過(guò) StatisticSlot 和請(qǐng)求被 blocked 的時(shí)候執(zhí)行。

      ProcessorSlotExitCallback:包含 onExit 回調(diào)函數(shù),當(dāng)請(qǐng)求經(jīng) StatisticSlot exit 的時(shí)候執(zhí)行。

      用戶(hù)只需將實(shí)現(xiàn)的 callback 注冊(cè)到 StatisticSlotCallbackRegistry 即可生效。

      動(dòng)態(tài)規(guī)則源

      Sentinel 的 動(dòng)態(tài)規(guī)則數(shù)據(jù)源 用于從外部的存儲(chǔ)中讀取及寫(xiě)入規(guī)則。Sentinel 將動(dòng)態(tài)規(guī)則數(shù)據(jù)源劃分為兩種類(lèi)型:讀數(shù)據(jù)源(ReadableDataSource)和寫(xiě)數(shù)據(jù)源(WritableDataSource),從而使不同類(lèi)型的數(shù)據(jù)源職責(zé)更加清晰:

      讀數(shù)據(jù)源僅負(fù)責(zé)監(jiān)聽(tīng)或輪詢(xún)讀取遠(yuǎn)程存儲(chǔ)的變更。

      寫(xiě)數(shù)據(jù)源僅負(fù)責(zé)將規(guī)則變更寫(xiě)入到規(guī)則源中。

      我們只需要自己實(shí)現(xiàn)動(dòng)態(tài)規(guī)則源,然后將其注冊(cè)至對(duì)應(yīng)的 RuleManager 上,這樣就可以實(shí)時(shí)地配置規(guī)則并進(jìn)行拉取/推送了。注冊(cè)動(dòng)態(tài)規(guī)則源時(shí)可以借助 Sentinel 的 InitFunc SPI 在初始化時(shí)自動(dòng)注冊(cè)。

      Transport 擴(kuò)展機(jī)制

      CommandCenter 可擴(kuò)展:用戶(hù)可以用不同的網(wǎng)絡(luò)協(xié)議或不同的庫(kù)來(lái)實(shí)現(xiàn) Transport API Server。

      HeartbeatSender 可擴(kuò)展:用戶(hù)可以用不同的網(wǎng)絡(luò)協(xié)議和心跳策略來(lái)實(shí)現(xiàn)心跳發(fā)送(上報(bào)到控制臺(tái))。

      CommandHandler 可擴(kuò)展:用戶(hù)可以自行實(shí)現(xiàn) CommandHandler 并注冊(cè)到 SPI 配置文件中來(lái)為 CommandCenter 添加自定義的命令。

      作者:云棲社區(qū) 中間件小哥


  • ·上一篇:
    ·下一篇:
  • 其他關(guān)聯(lián)資訊
    深圳市日月辰科技有限公司
    地址:深圳市寶安區(qū)松崗鎮(zhèn)潭頭第二工業(yè)城A區(qū)27棟3樓
    電話(huà):0755-2955 6626
    傳真:0755-2978 1585
    手機(jī):131 1300 0010
    郵箱:hu@szryc.com

    深圳市日月辰科技有限公司 版權(quán)所有:Copyright?2010-2023 www.qingjujia.cn 電話(huà):13113000010 粵ICP備2021111333號(hào)
    主站蜘蛛池模板: 五月天婷婷综合| 亚洲国产精品久久婷婷| 一级做a爰片性色毛片刺激| 欧美日韩亚洲一区二区三区| 黄色美女免费| 色婷亚洲| 96精品| 精品成人资源在线观看| 黄色一级视频在线观看| 你懂的网站在线观看网址| 一级毛片一级毛片一级毛片 | 一级黄色在线视频| 欧美伦理一区二区三区| 美女视频黄a视频免费全过程| 色黄网站在线观看| 99草视频| 国产伦精品一区二区三区视频金莲| 国产在线欧美精品中文一区| 日韩高清特级特黄毛片| 亚洲欧美日韩一区超高清| 成人在线免费小视频| 欧美黄色片在线观看| 久久久99精品免费观看| 久久综合中文字幕一区二区三区| 国产精品国偷自产在线| 亚洲一区二区三区四区在线| 亚洲国产高清在线| 福利一区二区三区视频在线观看 | 日本欧美不卡一区二区三区在线| 日本人69视频在线观看| 高h猛烈做哭bl壮汉受欧美| 成人久久18免费网站入口| 亚洲综合色丁香婷婷六月图片| 成人av在线播放| 岛国一级毛片| 97菊爱网| 国产成人精品美女在线| 直接看黄的网址| 91看片淫黄大片欧美看国产片| 国产成人高清精品免费5388| 欧美999|