Sentinel結(jié)合Nacos實現(xiàn)數(shù)據(jù)持久化過程詳解
在前面學(xué)習(xí)完Sentinel的流控規(guī)則以及Nacos時,就是最后的Sentinel持久化了。
思路就是:將流控規(guī)則配置進Nacos服務(wù)注冊中心中,這樣每次啟動Sentinel無需配置規(guī)則就有規(guī)則,但前提是啟動完Sentinel后要先進入方法才看得到規(guī)則,因為Sentinel是懶加載機制。
一、引入依賴
<!--SpringCloud Alibaba Sentinel-datasource-nacos 持久化技術(shù)--> <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服務(wù)注冊中心地址
sentinel:
transport:
dashboard: localhost:8080 #配置 dashboard監(jiān)控平臺地址
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)控斷點
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)頁可以看到服務(wù)列表已經(jīng)出現(xiàn)剛剛寫的spring.application.name
在配置列表中配置我們需要的信息。
關(guān)于JSON中的信息具體含義如下:
resource:資源名稱;
limitApp:來源應(yīng)用;
grade:閾值類型;0表示線程數(shù),1表示QPS;
count:單機閾值;
strategy:流控模式;0表示直接,1表示關(guān)聯(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持久化成功了
到此這篇關(guān)于Sentinel結(jié)合Nacos實現(xiàn)數(shù)據(jù)持久化過程詳解的文章就介紹到這了,更多相關(guān)Sentinel結(jié)合Nacos內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot啟動應(yīng)用及回調(diào)監(jiān)聽原理解析
這篇文章主要介紹了SpringBoot啟動應(yīng)用及回調(diào)監(jiān)聽原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-12-12Java實現(xiàn)查找算法的示例代碼(二分查找、插值查找、斐波那契查找)
查找就是根據(jù)給定的某個值,在查找表中確定一個其關(guān)鍵字等于給定值的數(shù)據(jù)元素。本文介紹了常見的數(shù)據(jù)查找算法:順序查找、二分查找、插值查找和斐波那契查找等以及相應(yīng)的Java代碼實現(xiàn)。需要的可以參考一下2022-01-01關(guān)于@Transactional事務(wù)嵌套使用方式
Spring框架通過@Transactional注解來管理事務(wù),它可以作用于類和方法上,用于聲明事務(wù)的屬性,如傳播行為、隔離級別、超時時間等,Spring事務(wù)是基于AOP實現(xiàn)的,它在運行時為加了@Transactional注解的方法或類創(chuàng)建代理2024-11-11springboot3.X 無法解析parameter參數(shù)問題分析
本文介紹了Spring Boot 3.2.1版本中調(diào)用接口時出現(xiàn)的參數(shù)解析問題,該錯誤是由Spring新版本加強的錯誤校驗和報錯提示導(dǎo)致的,在Spring 6.1之后,官方要求URL中的傳參必須使用`@PathVariable`聲明用于接收的變量,而不能省略`@RequestParam`注解,感興趣的朋友一起看看吧2025-03-03Java動態(tài)數(shù)組添加數(shù)據(jù)的方法與應(yīng)用示例
這篇文章主要介紹了Java動態(tài)數(shù)組添加數(shù)據(jù)的方法,結(jié)合實例形式詳細(xì)分析了Java動態(tài)數(shù)組的創(chuàng)建、添加、查找、打印等相關(guān)操作技巧,需要的朋友可以參考下2019-11-11