Sentinel結(jié)合Nacos實(shí)現(xiàn)數(shù)據(jù)持久化過程詳解
在前面學(xué)習(xí)完Sentinel的流控規(guī)則以及Nacos時(shí),就是最后的Sentinel持久化了。
思路就是:將流控規(guī)則配置進(jìn)Nacos服務(wù)注冊(cè)中心中,這樣每次啟動(dòng)Sentinel無需配置規(guī)則就有規(guī)則,但前提是啟動(dòng)完Sentinel后要先進(jìn)入方法才看得到規(guī)則,因?yàn)镾entinel是懶加載機(jī)制。
一、引入依賴
<!--SpringCloud Alibaba Sentinel-datasource-nacos 持久化技術(shù)-->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
<version>1.8.1</version>
</dependency>二、啟動(dòng)類注解
@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服務(wù)注冊(cè)中心地址
sentinel:
transport:
dashboard: localhost:8080 #配置 dashboard監(jiān)控平臺(tái)地址
port: 8719 #默認(rèn)8719端口 如果被占用就自增直至找到未被占用的端口
datasource:
ds1:
nacos:
server-addr: localhost:8848
dataId: ${spring.application.name}
groupId: DEFAULT_GROUP
data-type: json
rule-type: flow
#暴露監(jiān)控?cái)帱c(diǎ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,"持久化測(cè)試正常",new Payment(2022L,"testPersistence"));
}
}五、Nacos
在Java啟動(dòng)后登錄Nacos網(wǎng)頁(yè)可以看到服務(wù)列表已經(jīng)出現(xiàn)剛剛寫的spring.application.name

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

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

因?yàn)镾entinel是懶加載機(jī)制,所以這時(shí)候通過網(wǎng)址調(diào)用我們控制層的方法。

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

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

