红茶的个人站点

  • 首页
  • 专栏
  • 开发工具
  • 其它
  • 隐私政策
Awalon
Talk is cheap,show me the code.
  1. 首页
  2. 开发工具
  3. 正文

Sentinel 规则持久化

2023年8月19日 1063点热度 0人点赞 0条评论

一、修改order-service服务

修改OrderService,让其监听Nacos中的sentinel规则配置。

具体步骤如下:

1.引入依赖

在order-service中引入sentinel监听nacos的依赖:

<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-datasource-nacos</artifactId>
</dependency>

2.配置nacos地址

在order-service中的application.yml文件配置nacos地址及监听的配置信息:

spring:
  cloud:
    sentinel:
      datasource:
        flow:
          nacos:
            server-addr: localhost:8848 # nacos地址
            dataId: orderservice-flow-rules
            groupId: SENTINEL_GROUP
            rule-type: flow # 还可以是:degrade、authority、param-flow

二、修改sentinel-dashboard源码

SentinelDashboard默认不支持nacos的持久化,需要修改源码。

1. 解压

解压课前资料中的sentinel源码包:

image-20210618201340086

然后并用IDEA打开这个项目,结构如下:

image-20210618201412878

2. 修改nacos依赖

在sentinel-dashboard源码的pom文件中,nacos的依赖默认的scope是test,只能在测试时使用,这里要去除:

将sentinel-datasource-nacos依赖的scope去掉:

<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-datasource-nacos</artifactId>
</dependency>

3. 添加nacos支持

在sentinel-dashboard的test包下,已经编写了对nacos的支持,我们需要将其拷贝到main下。

image-20210618201726280

4. 修改nacos地址

然后,还需要修改测试代码中的NacosConfig类:

image-20210618201912078

修改其中的nacos地址,让其读取application.properties中的配置:

image-20210618202047575

在sentinel-dashboard的application.properties中添加nacos地址配置:

nacos.addr=localhost:8848

5. 配置nacos数据源

另外,还需要修改com.alibaba.csp.sentinel.dashboard.controller.v2包下的FlowControllerV2类:

image-20210618202322301

让我们添加的Nacos数据源生效:

image-20210618202334536

6. 修改前端页面

接下来,还要修改前端页面,添加一个支持nacos的菜单。

修改src/main/webapp/resources/app/scripts/directives/sidebar/目录下的sidebar.html文件:

image-20210618202433356

将其中的这部分注释打开:

image-20210618202449881

修改其中的文本:

image-20210618202501928

7. 重新编译、打包项目

运行IDEA中的maven插件,编译和打包修改好的Sentinel-Dashboard:

image-20210618202701492

8.启动

启动方式跟官方一样:

java -jar sentinel-dashboard.jar

如果要修改nacos地址,需要添加参数:

java -jar -Dnacos.addr=localhost:8848 sentinel-dashboard.jar

现在 Sentinel 已经依赖于 Nacos,启动前需要先确保 Nacos 服务可用。

如果一切正常的话,可以看到一个新增的菜单流控规则-NACOS:

image-20230820140714518

在这个菜单添加的规则会经过 Nacos 远程配置下发到微服务,所以是持久化保存的。类似的,其它规则要持久化,就需要用类似的方式修改 Sentinel 源码。

如果没有出现这个菜单,可能是因为页面缓存的原因,需要刷新浏览器缓存。

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: sentinel
最后更新:2023年8月20日

魔芋红茶

加一点PHP,加一点Go,加一点Python......

点赞
< 上一篇
下一篇 >

文章评论

取消回复

*

code

COPYRIGHT © 2021 icexmoon.cn. ALL RIGHTS RESERVED.
本网站由提供CDN加速/云存储服务

Theme Kratos Made By Seaton Jiang

宁ICP备2021001508号

宁公网安备64040202000141号