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