Sentinel結合Nacos實現(xiàn)數(shù)據(jù)持久化過程詳解
在前面學習完Sentinel的流控規(guī)則以及Nacos時,就是最后的Sentinel持久化了。
思路就是:將流控規(guī)則配置進Nacos服務注冊中心中,這樣每次啟動Sentinel無需配置規(guī)則就有規(guī)則,但前提是啟動完Sentinel后要先進入方法才看得到規(guī)則,因為Sentinel是懶加載機制。
一、引入依賴
<!--SpringCloud Alibaba Sentinel-datasource-nacos 持久化技術-->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
<version>1.8.1</version>
</dependency>二、啟動類注解
@SpringBootApplication
@EnableDiscoveryClient
public class CloudAlibabaSentinelService {
public static void main(String[] args) {
SpringApplication.run(CloudAlibabaSentinelService.class, args);
}
}三、改yml
server:
port: 8401
spring:
application:
name: cloud-sentinel-service
cloud:
nacos:
discovery:
server-addr: localhost:8848 #Nacos服務注冊中心地址
sentinel:
transport:
dashboard: localhost:8080 #配置 dashboard監(jiān)控平臺地址
port: 8719 #默認8719端口 如果被占用就自增直至找到未被占用的端口
datasource:
ds1:
nacos:
server-addr: localhost:8848
dataId: ${spring.application.name}
groupId: DEFAULT_GROUP
data-type: json
rule-type: flow
#暴露監(jiān)控斷點
management:
endpoint:
sentinel:
enabled: true
endpoints:
web:
exposure:
include: '*'
四、寫控制層邏輯
@RestController
public class SentinelController {
@GetMapping("/persistence")
@SentinelResource("persistence")
public R persistence(){
return new R(200,"持久化測試正常",new Payment(2022L,"testPersistence"));
}
}五、Nacos
在Java啟動后登錄Nacos網(wǎng)頁可以看到服務列表已經(jīng)出現(xiàn)剛剛寫的spring.application.name

在配置列表中配置我們需要的信息。

關于JSON中的信息具體含義如下:
resource:資源名稱;
limitApp:來源應用;
grade:閾值類型;0表示線程數(shù),1表示QPS;
count:單機閾值;
strategy:流控模式;0表示直接,1表示關聯(lián),2表示鏈路;
controlBehavior:流控效果;0表示快速失敗,1表示W(wǎng)arm Up,2表示排隊等待;
clusterMode:是否集群。
六、Sentinel
登錄Sentinel頁面刷新會發(fā)現(xiàn)有spring.application.name,但里面空空如也。

因為Sentinel是懶加載機制,所以這時候通過網(wǎng)址調(diào)用我們控制層的方法。

這時候回來Sentinel監(jiān)控平臺上刷新就能看到流控規(guī)則,正像Nacos中配置的JSON格式一樣。

到這里就證明Sentinel持久化成功了
到此這篇關于Sentinel結合Nacos實現(xiàn)數(shù)據(jù)持久化過程詳解的文章就介紹到這了,更多相關Sentinel結合Nacos內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
MapStruct處理Java中實體與模型間不匹配屬性轉換的方法
今天小編就為大家分享一篇關于MapStruct處理Java中實體與模型間不匹配屬性轉換的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03
新建springboot項目時,entityManagerFactory報錯的解決
這篇文章主要介紹了新建springboot項目時,entityManagerFactory報錯的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
Spring Boot靜態(tài)資源路徑的配置與修改詳解
最近在做SpringBoot項目的時候遇到了“白頁”問題,通過查資料對SpringBoot訪問靜態(tài)資源做了總結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-09-09
java使用三層架構實現(xiàn)電影購票系統(tǒng)
這篇文章主要為大家詳細介紹了java使用三層架構實現(xiàn)電影購票系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-01-01
Java調(diào)用Coze?API詳細實現(xiàn)步驟
Coze是一款由字節(jié)跳動推出的低代碼AI開發(fā)平臺,讓非專業(yè)開發(fā)者也能輕松創(chuàng)建智能應用,這篇文章主要介紹了Java調(diào)用Coze?API的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2026-01-01

