使用 Nacos 存儲 Sentinel 規(guī)則信息
Sentinel 規(guī)則配置,一旦我們重啟服務過后,所有的規(guī)則都會消失。我們可以通過 Zookeeper , Applo , Nacos 等配置中心將這些規(guī)則配置存儲起來,讓服務重啟或者啟動多節(jié)點的時候可以共享配置數(shù)據(jù)。
之前的項目我們通過 Nacos 來作為服務注冊中心和服務配置中心,我們也可以將 Nacos 作為 Sentinel 的配置數(shù)據(jù)存儲倉庫,來為我們提供Sentinel 配置數(shù)據(jù)的持久化。 如下圖所示

增加 Nacos 存儲依賴
需要獨立引入如下依賴,來申明 sentinel 的規(guī)則數(shù)據(jù)存儲在 nacos 中。
- <dependency>
- <groupId>com.alibaba.csp</groupId>
- <artifactId>sentinel-datasource-nacos</artifactId>
- </dependency>
添加 YML 配置
我們?nèi)绻褂?Sentinel 的獨立數(shù)據(jù)源功能,那么需要在 yaml 文件中申明數(shù)據(jù)源配置信息。
- spring:
- application:
- name: stock-service
- profiles:
- active: dev
- cloud:
- sentinel:
- transport:
- port: 8719
- dashboard: localhost:8080
- enabled: true
- datasource:
- ds:
- nacos:
- dataId: ${spring.application.name}-flow-rules
- groupId: DEFAULT_GROUP
- data‐type: json
- rule‐type: flow
Nacos 增加配置
在 Nacas 配置中心,我們需要添加規(guī)則配置并且發(fā)布,這里需要注意 dataId 和 groupId 一定不要搞錯,不然會導致找不到數(shù)據(jù)配置,如下圖所示:
數(shù)據(jù)模板
- [
- {
- "resource": "abc",
- "controlBehavior": 0,
- "count": 20.0,
- "grade": 1,
- "limitApp": "default",
- "strategy": 0
- }
- ]
最后我們啟動服務和 Sentinel 控制臺,就可以在流控信息這個菜單下面查看到我們在配置中心定義的流控信息。
Sentinel 查看配置
總結
至此我們就完成了,Sentinel 對規(guī)則持久化到 Nacos 的全部操作。這里有一個小小的問題就是我們在 Sentinel 控制臺修改規(guī)則過后默認不能直接同步到 Nacos 中,如果需要同步到 Nacos 中的需要修改 Sentinel 控制臺的源碼,配置信息通過 “推模式”同步到 Nacos 中存儲。
更多的 Sentinel 使用可以參考官方文檔,文檔地址:
https://github.com/alibaba/Sentinel/wiki/Sentinel-%E6%8E%A7%E5%88%B6%E5%8F%B0%EF%BC%88%E9%9B%86%E7%BE%A4%E6%B5%81%E6%8E%A7%E7%AE%A1%E7%90%86%EF%BC%89#%E8%A7%84%E5%88%99%E9%85%8D%E7%BD%AE