1. 程式人生 > 其它 >Sentinel 規則持久化

Sentinel 規則持久化

一、修改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原始碼包:

然後並用IDEA開啟這個專案,結構如下:

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下。

4. 修改nacos地址

然後,還需要修改測試程式碼中的NacosConfig類:

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

在sentinel-dashboard的application.properties中新增nacos地址配置:

nacos.addr=localhost:8848

5. 配置nacos資料來源

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

讓我們新增的Nacos資料來源生效:

6. 修改前端頁面

接下來,還要修改前端頁面,新增一個支援nacos的選單。

修改src/main/webapp/resources/app/scripts/directives/sidebar/目錄下的sidebar.html檔案:

將其中的這部分註釋開啟:

修改其中的文字:

7. 重新編譯、打包專案

執行IDEA中的maven外掛,編譯和打包修改好的Sentinel-Dashboard:

8.啟動

啟動方式跟官方一樣:

java -jar sentinel-dashboard.jar

如果要修改nacos地址,需要新增引數:

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