其他分享
首页 > 其他分享> > sentinel 中rule的加载过程

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中.到此整个加载过程就完成了.

 

标签:AuthorityRuleManager,配置文件,rule,SentinelProperty,sentinel,加载
来源: https://www.cnblogs.com/monkeydai/p/16380531.html