20 | Sentinel 实战:如何接入 Nacos 实现规则持久化?
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了如何通过集成Nacos Config来实现Sentinel规则持久化的实战经验。作者首先指出了当前Sentinel配置规则的不足之处,即规则没有持久化保存,导致重启应用程序或Sentinel服务器时规则丢失。接着,作者详细介绍了如何对Sentinel源码进行二次开发,通过集成Nacos Config来实现规则持久化。在文章中,作者提到了对Sentinel组件的二次开发和微服务改造两个方面的内容。在对Sentinel组件的二次开发中,作者介绍了修改Nacos依赖项的应用范围、后端程序对接Nacos以及前端页面改造等具体步骤。通过这些改造,实现了将Sentinel限流规则同步到Nacos Config服务器,从而实现规则持久化。整个过程涉及到了对Sentinel源码的修改和Nacos Config的使用。最后,作者还提到了对微服务模块的改造,将微服务程序接入Nacos Config,获取Sentinel限流规则的内容。通过这些改造,可以实现规则的持久化保存和动态修改。整篇文章详细介绍了技术实现的步骤和方法,对于需要实现Sentinel规则持久化的开发人员具有一定的参考价值。文章还提到了验证限流规则同步效果的步骤和注意事项,以及对持久化改造的总结和思考题。整体来说,本文内容详实,对于想要深入了解Sentinel规则持久化实现的读者具有很高的参考价值。
《Spring Cloud 微服务项目实战》,新⼈⾸单¥59
全部留言(16)
- 最新
- 精选
- 逝影落枫为何对接数据源,不采用启动组件的方式,要改代码这么low的?如何做平滑升级?
作者回复: 可能是官方想锻炼大家的动手能力,所以没提供组件化的方式。不过阿里云的产品倒是提供了,典型的用开源项目导流到自己的商用项目里,吃相有点难看
2022-01-2620 - 小飞同学为啥官方不提供可配置化的数据源,就像nacos那样?提供一个规则配置导出的工具也行,开源项目写的这么low不合适把(改dashborad后端代码-从test目录下复制文件,修改前端这么折腾),应该提一个issue
作者回复: 因为官方想让大家用cloud版服务,开源出来的是官方鱼饵
2022-02-165 - 牛年榴莲小团队技术选型基本可以放弃这个组件了
作者回复: 小项目怎么快怎么来,用微服务好处不大,到时候规模上来了再小步快跑重构
2022-04-184 - 来来老师,经过以上改造后,是不是也可以在nacos中直接修改coupon-customer-serv-flow-rules配置,达到限流的效果,而不要再经过Sentinel 控制台操作
作者回复: 其实可以这么玩,不过保险起见还是用sentinel改比较好,复杂规则的配置内容蛮多的,直接改的话一不小心改错了容易出故障
2022-01-2622 - 永恒之蓝有没有改造1.8.2版本成功的老哥,我改造sidebar.html无法生效,对angular不是很熟悉,这个前端代码是要编译并打包之后才生效是么?这个问题排查了很久还是没有找到解决问题办法。
作者回复: 同学说的没错,改完后确实是需要编译之后打包才能生效。你可以先把我的源码download下来试着编译跑一遍,源码里都是验证过可以正常工作哒
2023-07-19归属地:北京1 - peterQ1:微服务为什么要从nacos获取sentinel的配置信息? A在前面的18、19篇中,微服务已经通过注解实现了与sentinel的绑定,并不需要获取流控规则(这句话如果错误,则为“已经能从sentinel获取流控规则”)。现在sentinel集成nacos后,为什么要从nacos获取规则配置信息? B 另外,sentinel没有与nacos集成时,微服务需要从sentinel获取规则配置信息吗?如需要,怎么获取的? Q2:sentinel规则可以保存到其他组件吗? Sentinel的规则,除了可以保存到nacos中外,还可以保存到其他组件吗?比如zookeeper,比如redis,比如RocketMQ。 Q3:最新的sentinel1.8.3编译失败? 我是从官网下载的最新1.8.3版本,导入idean2019,按照老师第20篇的步骤修改代码,然后编译,但编译失败了。 sentinel-adapter模块下的“sentinel-grpc-adapter”下面, src/test/FooServiceClient.java报告错误:Error:(18, 49) java: 程序包com.alibaba.csp.sentinel.adapter.grpc.gen不存在, 此文件中,导入grpc.gen失败,"gen"在idea中为红色字体。 import com.alibaba.csp.sentinel.adapter.grpc.gen.FooRequest; 官网下载的,应该是完整的,怎么会报错呢?该怎么解决?
作者回复: Q1: 因为持久化层在nacos Q2: 可以支持其它数据源,但不是所有组件都能作为存储服务的,像rocketmq肯定不行 Q3: 这个包源码未改动过,感觉像是mvn没拉下来包的问题,换一个阿里元mvn镜像试试
2022-01-271 - Keke为什么我的nacos里没有生成配置文件呢?但是重启项目后配置的规则都还在
作者回复: 同学是说nacos config里没有找到sentinel创建的持久化规则吗?可以先看下启动项目的日志,里面会有拉取nacos config文件的列表,看下这个列表里有没有sentinel创建的规则文件名~
2023-03-12归属地:山东 - Believe很多plugins都下不下来,还存在很多依赖包都下不下来
作者回复: plugins下载不下来应该是国内墙的原因,同学试下换阿里云的maven镜像试试
2022-11-23归属地:贵州4 - 郭井阳geekbang-flow 这个数据库key怎么对应的
作者回复: 这个值就freestyle就好,只有一个sentinel源就随便起个酷炫的名字
2022-06-14 - 郭井阳datasource: # 数据源的key,可以自由命名 geekbang-flow: 这个值是怎么取值的
作者回复: 这个值就freestyle就好,只有一个sentinel源就随便起个酷炫的名字
2022-06-14