[Alibaba微服务技术入门]_Sentinel持久化_第18讲
Sentinel持久化问题:Sentinel Dashboard中添加的规则是存储在内存中的,只要项目一重启规则就丢失了
Sentinel工作模式
- 在 Sentinel 客户端(微服务)中用代码写的配置,在启动后,当有第一次流量进来的时候,会推送给 Sentinel-Dashboard
- 在 Sentinel-Dashboard 中的配置,会被推送到 Sentinal 客户端(微服务)
- 默认情况下,不论 Sentinel-Dashboard 中的配置还是 Sentinal 客户端中的配置,都是在内存中的,一点重启,这些变化过的规则就都消失了
Sentinel引入配置中心
此处将规则持久化到nacos中,在nacos中添加规则,然后同步到dashboard中
- Sentinel-Dashboard 需要知道,当配置发生变化的时候,要把配置推送到配置中心,持久话保存起来
- 客户端要知道,配置全在配置中心里存的呢,一旦配置发生变化,配置中心要把配置推给我
- 这样的话,不论是 Sentinel-Dashboard 还是 Sentinel 客户端重启后,都不会丢失配置
实现过程
第一步:导入依赖包
<!--springcloud ailibaba sentinel-datasource-nacos 后续做持久化用到--> <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-datasource-nacos</artifactId> </dependency>
第二步:编写 application.yml,添加 sentinel 注册到 nacos 的配置
server: port: 6001 spring: application: name: sentinel-service cloud: nacos: discovery: server-addr: 127.0.0.1:8858 sentinel: transport: port: 8719 dashboard: 127.0.0.1:8080 datasource: ds1: nacos: server-addr: 127.0.0.1:8858 dataId: sentinel-service groupId: DEFAULT_GROUP data-type: json rule-type: flow management: endpoints: web: exposure: include: '*'
第三步:在 nacos 后台配置中心进行配置
[ { "resource": "/sentinel/service", "limitApp": "default", "grade": 1, "count": 1, "strategy": 0, "controlBehavior": 0, "clusterMode": false } ]
- resource:资源名称
- limitApp:来源应用
- grade:阈值类型,0表示线程数,1表示QPS
- count:单机阈值
- strategy:流控模式,0表示直接,1表示关联,2表示链路
- controlBehavior:流控效果,0表示快速失败,1表示Warm Up,2表示排队等待
- clusterMode:是否集群
第四步:对 FlowLimitController 接口 /sentinel/service 进行测试,发现项目进行重启,服务限流规则依然存在
分类:
Java_微服务技术_学习笔记
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下