文章目錄
- ??4.1. 先啟動nacos??
- ??4.2. 編譯打包??
- ??4.3. 創(chuàng)建微服務(wù) && 啟動??
- ??4.4. 刷新sentinel??
- ??4.5. 登錄nacos??
- ??4.6. sentinel 規(guī)則刪除??
- ??4.7. nacos規(guī)則查看??
- ??4.8. (企業(yè)案例)規(guī)則擴展??
一、推模式架構(gòu)圖
圖片引用自 https://github.com/alibaba/Sentinel/wiki/在生產(chǎn)環(huán)境中使用-Sentinel
二、原理簡述
2.1. 組件版本關(guān)系
Spring Cloud Alibaba Version | Sentinel Version | Nacos Version | RocketMQ Version | Dubbo Version | Seata Version |
2.2.6.RELEASE | 1.8.1 | 1.4.2 | 4.4.0 | 2.7.8 | 1.3.0 |
2021.1 or 2.2.5.RELEASE or 2.1.4.RELEASE or 2.0.4.RELEASE | 1.8.0 | 1.4.1 | 4.4.0 | 2.7.8 | 1.3.0 |
Spring Cloud Version | Spring Cloud Alibaba Version | Spring Boot Version | Nacos Version | jdk |
Spring Cloud Hoxton.SR9 | 2.2.6.RELEASE | 2.3.2.RELEASE | 1.4.2 | 1.8.202 |
2.2. 控制臺推送規(guī)則
將規(guī)則推送到Nacos或其他遠程配置中心
Sentinel客戶端鏈接Nacos,獲取規(guī)則配置;并監(jiān)聽Nacos配置變化,如發(fā)生變化,就更新本地緩存(從而讓本地緩存總是和Nacos一致)
控制臺監(jiān)聽Nacos配置變化,如發(fā)生變化就更新本地緩存(從而讓控制臺本地緩存總是和Nacos一致)
三、Sentinel控制臺改造
控制臺改造主要是為規(guī)則實現(xiàn)
DynamicRuleProvider:從Nacos上讀取配置
DynamicRulePublisher:將規(guī)則推送到Nacos上
3.1. 下載源碼
這里使用1.8版本演示
??https://github.com/alibaba/Sentinel/tags??
3.2. 修改pom
將
改為
3.3. 重要文件復(fù)制
由于sentinel持久化默認不支持持久化,但是官方關(guān)于sentinel提供了nacos、zookeeper、apollo這3種方式,但是需要自己集成。
找到 ??sentinel-dashboard/src/test/java/com/alibaba/csp/sentinel/dashboard/rule/nacos?
??目錄,將整個目錄拷貝到 sentinel-??dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/rule/nacos?
?,如圖:
3.4. 注冊地址修改
3.5. 請求實例需改
修改sentinel頁面端保存規(guī)則請求的url控制層
修改后的配置
3.6. 菜單新增
修改 sentinel-??dashboard/src/main/webapp/resources/app/scripts/directives/sidebar/sidebar.html?
?,找到:
修改后
齊活兒啦!終于把流控規(guī)則改造成推模式持久化啦!
四、編譯 & 啟動
4.1. 先啟動nacos
??https://nacos.io/zh-cn/docs/quick-start.html?? 這里一windows環(huán)境演示
里面的配置先忽略
4.2. 編譯打包
執(zhí)行 ??mvn clean package -DskipTests?
?? 在項目的 target 目錄找到??sentinel-dashboard.jar?
? ,執(zhí)行 ??java -jar sentinel-dashboard.jar?
? 啟動控制臺。
登錄
4.3. 創(chuàng)建微服務(wù) && 啟動
創(chuàng)建微服務(wù)模塊
添加依賴
配置文件
創(chuàng)建測試方法
啟動應(yīng)用
請求url
???http://localhost:9000/product/1??
4.4. 刷新sentinel
4.5. 登錄nacos
4.6. sentinel 規(guī)則刪除
4.7. nacos規(guī)則查看
規(guī)則也隨之刪除了
4.8. (企業(yè)案例)規(guī)則擴展
以上只是將流控規(guī)則擴展好了,其他需要其他模塊,還需要根據(jù)官網(wǎng)文檔自行擴展
附上:
???(企業(yè)案例)使用Nacos持久化規(guī)則,改造sentinel-dashboard??
本文摘自 :https://blog.51cto.com/g