Sentinel最佳实践的谜之逻辑

Sentinel最佳实践的谜之逻辑

Sentinel项目地址

Sentinel给的最佳实践

在单应用使用中,Sentinel Dashboard 是直接通过http向machine发送了规则修改,machine接收到之后.RuleManager应用规则.来完成的规则变更推送.
这个有两个问题

  1. 只能一台一台机器改

  2. machine重启后规则丢失

官方最佳实践
在上图,某位阿里大神,给的解决方案确实加一个配置中心,Sentinel Dashboard先发给配置中心,然后machine监听配置中心更改,监听到数据改变后RuleManager应用规则.

我想说何必呢,这究竟是何必呢???

  1. Dashborad能直接调用服务修改规则,为什么要个配置中心???
  2. 既然能改一台不能改多台吗???
  3. 重启后重连Dashborad不能再去取一次吗???
  4. Dashborad并没有提供调用配置中心代码.是要我生成规则出来贴到配置中心里去吗???

Sentinel真最佳实践

  1. 项目重启从dashboard获取流控策略
  2. dashboard持久化流控策略

这样项目重启也不会丢失流控策略,当修改策略时dashboard持久化策略并且将策略从新发布给服务

Sentinel现有问题

  1. 规则没有持久化
  2. 多台machine同步修改规则
  3. machine重启后需要恢复规则

基于现有问题的修改

原有问题解决方案
所有rule都只是保存在内存中,dashboard如果重启将丢失.官方建议使用动态数据源推送规则,但这增加了无用的开销.修改持久层,使用JPA将rule都持久化到DB,这样即使重启rule也不会丢失.
只能针对单个机器实例进行规则CURD.扩展该功能CD为同app批量操作,添加,删除规则时,将同步所有机器.新机器启动,或者死机器复活重新发送规则
机器重启后将丢失规则.在心跳中增加埋点.如果是新机器便会clone第一个台机器规则到自身.重启的机器将重新将规则推送.
修改完集群流控配置,未同步rule到token server修改集群流控配置后,同步rule到token server

完成进度

  • 流量控制
  • 热点参数限流
  • 集群流控
  • 熔断降级

使用方法

除增加application.properties中数据库配置外,其他配置皆参照下方官方文档.数据库表将通过JPA自动生成,无需手动建表.
代码已发布github感觉可以请帮忙star.谢谢观看.
https://github.com/zhuyb0614/sentinel-dashboard

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值