1. sentinel规则持久化三种模式分析
2. 控制台是如何推送规则到客户端内存中的
3. 原始模式下规则推送的源码分析
4. sentinel规则持久化扩展点分析
5. 动态规划扩展之读写数据源的实现
6. 客户端拉模式规则持久化实战
7. 拉模式改造之如何整合spring cloud
原始模式 : 没有对规则进行持久化就,只存储在内存中
pull模式 : 将规则存储到文件, redis, 数据库中一份
push模式 : 将配置的规则直接推送到配置中心(比如nacos)
接下来让我们先研究一下, sentinel客户端与sentinel可视化界面中的规则是如何相互通知的
就以流控规则举例 , 每一个流控规则对应sentinel客户端的一个FlowRule对象, 在客户端有一个FlowRuleManager类, 这个类是用来维护流控规则的
那我们想一下, 我们是通过什么方法来增加流控规则呢? 也就是向flowRules这个map添加对象呢?
让我们找一下源码
那么, sentinel Dashboard如何推送规则到sentinel客户端的内存中的?
到这里, sentinel dashboard创建规则推送到客户端已经完成了, 接下来一下客户端如何接收传递过来的规则
当我们引入sentinel的jar包时, 同时也会引入transport-simple-http这个jar包, 这个jar包就是用来和可视化界面通信的,
到此, dashboard与客户端同步rule已经完成
我们继续向下看, 还有一行代码
这段代码就可以实现持久化, 只要我们重写数据源就可以