天天看點

Ali sentinel dashboard rule管理-雞肋

基本分析

簡單記錄下基于dashboard的rule管理

  1. rule 儲存在記憶體中,可以通過InMemoryRuleRepositoryAdapter 類實作儲存,但儲存好需要考慮client 新接入(含斷開重連)時候的rule更新,可以考慮在class SimpleMachineDiscovery addMachine後主動push
  2. rule都是基于appname+ip+port進行更新及查詢,不支援僅僅基于appname進行管理
  3. 連接配接dashboard的應用本身會啟動一個netty(simple) http server,處理dashboard(作為client)發起的rule查詢、更新請求
Ali sentinel dashboard rule管理-雞肋

雞肋原因

dashboard rule管理相當雞肋,原因有

  • 預設隻儲存在記憶體中,重新開機就沒有了
  • 實際規則還是儲存在每一個應用執行個體
  • dashboard查詢rule,是需要通路執行個體
  • 儲存時候執行個體連接配接如果丢失,規則也丢失

總而言之,可能是為了推廣阿裡雲上的企業版,開源的dashboard是不适用用于生産。

生産化修改建議

  • dashboard 界面上不建議按ip管理規則,取消按ip修改,改為按應用
  • 按application管理規則并同步到nacos、etcd等後端,不考慮代碼難看直接修改InMemoryRuleRepositoryAdapter一個類就可以
  • 應用從後端定時同步(或者依賴推送)更新規則

繼續閱讀