一、Sentinel+持久化原理
1、为什么需要持久化
前面我们搭建过Nacos + Mysql持久化,因为Nacos默认是将配置数据写在内存中的,所以当Nacos一重启,所有配置信息都会丢失。同样的原因。Sentinel默认也是将规则推送至
客户端并直接更新到内存中,所以客户端一重启,规则即消失。在生产环境肯定是需要持久化配置它。
2、官方配置持久化的方式
官方文档 在生产环境中使用 Sentinel
官方给出了两种方式: Pull模式 和 Push模式
1)、Pull模式
说明
pull 模式的数据源(如本地文件、RDBMS 等)一般是可写入的。 客户端主动向某个规则管理中心(如本地文件、RDBMS 等)定期轮询拉取规则。我们既可以在应用本地直接
修改文件来更新规则,也可以通过 Sentinel 控制台推送规则。以本地文件数据源为例,推送过程如下图所示:
首先 Sentinel 控制台通过 API 将规则推送至客户端并更新到内存中,接着注册的写数据源会将新的规则保存到本地的文件中。使用 pull 模式的数据源时一般不需要对 Sentinel
控制台进行改造。
- 优点:简单,无任何依赖;规则持久化
- 缺点:不保证一致性(无法保证同步);实时性不保证(毕竟是轮询),拉取过于频繁也可能会有性能问题。