這篇文章給大家分享的是有關SpringCloud sentinel如何實現(xiàn)接口限流的方法的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)建站"三網(wǎng)合一"的企業(yè)建站思路。企業(yè)可建設擁有電腦版、微信版、手機版的企業(yè)網(wǎng)站。實現(xiàn)跨屏營銷,產(chǎn)品發(fā)布一步更新,電腦網(wǎng)絡+移動網(wǎng)絡一網(wǎng)打盡,滿足企業(yè)的營銷需求!創(chuàng)新互聯(lián)建站具備承接各種類型的做網(wǎng)站、網(wǎng)站建設項目的能力。經(jīng)過10年的努力的開拓,為不同行業(yè)的企事業(yè)單位提供了優(yōu)質的服務,并獲得了客戶的一致好評。Sentinel的官方標題是:分布式系統(tǒng)的流量防衛(wèi)兵。從名字上來看,很容易就能猜到它是用來作服務穩(wěn)定性保障的。對于服務穩(wěn)定性保障組件,如果熟悉Spring Cloud的用戶,第一反應應該就是Hystrix。但是比較可惜的是Netflix已經(jīng)宣布對Hystrix停止更新。那么,在未來我們還有什么更好的選擇呢?除了Spring Cloud官方推薦的resilience4j之外,目前Spring Cloud Alibaba下整合的Sentinel也是用戶可以重點考察和選型的目標。
Sentinel的功能和細節(jié)比較多,一篇內(nèi)容很難介紹完整。所以下面我會分多篇來一一介紹Sentinel的重要功能。本文就先從限流入手,說說如何把Sentinel整合到Spring Cloud應用中,以及如何使用Sentinel Dashboard來配置限流規(guī)則。通過這個簡單的例子,先將這一套基礎配置搭建起來。
下載地址:sentinel
啟動方式:java -Dserver.port=8888 -jar sentinel-dashboard-1.6.0.jar
可以通過-Dserver.port=8888來切換啟動的端口,-Dserver.servlet.session.timeout=7200: 用于指定 Spring Boot 服務端 session 的過期時間,如 7200 表示 7200 秒;60m 表示 60 分鐘,默認為 30 分鐘;
這里我碰到一個問題:使用最新的sentinel Dashboard 1.7.1.jar會出現(xiàn)問題
Sentinel Dashboard界面新增流控規(guī)則時報錯:失?。篿nvalid type
主要問題是Sentinel Dashboard的jar包版本過高,導致代碼里的sentinel-code版本與dashboard的版本不一致,最終報錯。
github上的issue:https://github.com/alibaba/Sentinel/issues/1236#issuecomment-571907232
啟動后輸入賬號密碼,全部為sentinel,進入主頁面
到此sentinel dashboard的啟動就完成了,接下來啟動項目
pom中加入
com.alibaba.cloudspring-cloud-starter-alibaba-sentinel2.1.1.RELEASE
在配置文件中加入相關配置
spring cloud: sentinel: transport: dashboard: localhost:8080
在項目中寫一個簡單接口
@GetMapping("/unLock") public String lock() throws Exception { return "success"; }
啟動項目就可以了,在dashboard查看前,先調用接口幾次,不然dashboard上可能看不到,這里我用jmeter請求了500次
接下來測試限流的作用,點擊簇點鏈路,選擇要限流的接口,點擊流控
使用jmeter發(fā)起500次請求
限流生效
感謝各位的閱讀!關于SpringCloud sentinel如何實現(xiàn)接口限流的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!