天天看点

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一个类就可以
  • 应用从后端定时同步(或者依赖推送)更新规则

继续阅读