sentinel 中rule的加载过程

 

1.主要类介绍

1.1.Rule

sentinel中的限流,黑白名单,熔断降级,系统自适应保护功能中的各种规则都被抽象成了Rule,不同的功能使用不同的Rule.

 

 

1.2.SentinelProperty

sentinel中的配置都保存在SentinelProperty中

 

 

1.3.PropertyListener

每个SentinelProperty都可以注册多个PropertyListener,用于监听property中的配置的改变,然后完成一些操作.

 

1.4.ruleManager

不同的rule有不同的ruleManager,但是ruleManager并没有统一继承的父类,

2.rule的加载过程(AuthorityRuleManager为例,其他的原理一致)

 

 

1.sentinel会把用户配置的黑白名单的规则(不论是在文件中,还是在数据库中)转化成AuthorityRule实例

2.调用AuthorityRuleManager的loadRules方法加载用户定义的配置文件

3.loadRules方法会调用AuthorityRuleManager中SentinelProperty的updateValue方法,这个方法会替换SentinelProperty中的配置文件为新传入的值.

3.由于在SentinelProperty中配置了PropertyListener,当SentinelProperty中的配置文件发生改变的时候propertyListener就会监听到,并且调用configUpdate方法.configuUpdate方法会把SentinelProperty中的配置信息转化成AuthorityRuleManager可以直接使用的内容,然后保存到AuthorityRuleManager的authorityRules中.到此整个加载过程就完成了.

 

posted on 2022-06-16 01:26  monkeydai  阅读(284)  评论(0编辑  收藏  举报

导航