springboot?整合sentinel的示例代碼
1. 安裝sentinel
下載地址:https://github.com/alibaba/Sentinel/releases/tag/1.7.0 ,由于我無(wú)法下載,所以使用docker安裝,
yuchunfang@yuchunfangdeMacBook-Pro ~ % docker pull bladex/sentinel-dashboard:1.7.0 yuchunfang@yuchunfangdeMacBook-Pro ~ % docker run --name sentinel -d -p 8858:8858 bladex/sentinel-dashboard:1.7.0
登錄地址,默認(rèn)端口是8080,由于我的已被占用,所以使用8858,http://localhost:8858
賬號(hào)密碼:sentinel/sentinel,能夠打開(kāi)訪問(wèn)頁(yè)面,說(shuō)明安裝成功。
2.客戶端連接
1. 準(zhǔn)備springboot項(xiàng)目,在pom中引入sentinel
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> <version>2.2.5.RELEASE</version> </dependency>
2.配置文件配置服務(wù)器地址信息
spring.cloud.sentinel.transport.dashboard=localhost:8858 spring.cloud.sentinel.transport.heartbeat-interval-ms=500 spring.cloud.sentinel.eager=true
3.自定義異常提示信息
package org.example.config; import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.BlockExceptionHandler; import com.alibaba.csp.sentinel.slots.block.BlockException; import com.alibaba.csp.sentinel.slots.block.flow.FlowException; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Component; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @Component public class SentinelExceptionHandler implements BlockExceptionHandler { @Override public void handle(HttpServletRequest httpServletRequest, HttpServletResponse response, BlockException e) throws Exception { response.setStatus(HttpStatus.TOO_MANY_REQUESTS.value()); response.setContentType("application/json;charset=utf-8"); response.getWriter().print("sentinel 限流。。。"); } }
BlockException包含很多個(gè)子類,分別對(duì)應(yīng)不同的場(chǎng)景:
異常 說(shuō)明
FlowException 限流異常
ParamFlowException 熱點(diǎn)參數(shù)限流的異常
DegradeException 降級(jí)異常
AuthorityException 授權(quán)規(guī)則異常
SystemBlockException 系統(tǒng)規(guī)則異常
4.在sentinel中配置限流的接口
當(dāng)客戶端連接好sentinel以后,首頁(yè)會(huì)增加一列客戶端的服務(wù),在其中增加流控規(guī)則,其中資源名為接口地址,配置閥值,查看是否生效,可以配置流控,降級(jí),熱點(diǎn)等相關(guān)配置,默認(rèn)情況下,發(fā)生限流、降級(jí)、授權(quán)攔截時(shí),都會(huì)進(jìn)入自定義異常。
可以看到當(dāng)配置的請(qǐng)求地址訪問(wèn)頻率大于設(shè)置的閥值時(shí),流控生效,起到保護(hù)服務(wù)器的作用
到此這篇關(guān)于springboot 整合sentinel的示例代碼的文章就介紹到這了,更多相關(guān)springboot 整合sentinel內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- springboot整合sentinel接口熔斷的實(shí)現(xiàn)示例
- 在SpringBoot項(xiàng)目中使用Spring Cloud Sentinel實(shí)現(xiàn)流量控制
- 詳解Springboot集成sentinel實(shí)現(xiàn)接口限流入門
- SpringBoot2.0+阿里巴巴Sentinel動(dòng)態(tài)限流實(shí)戰(zhàn)(附源碼)
- springboot整合sentinel的方法教程
- SpringBoot基于Sentinel在服務(wù)上實(shí)現(xiàn)接口限流
- 詳解SpringBoot Redis自適應(yīng)配置(Cluster Standalone Sentinel)
- Springboot 中使用Sentinel的詳細(xì)步驟
相關(guān)文章
java正則表達(dá)式如何獲取xml文件中指定節(jié)點(diǎn)的值
這篇文章主要介紹了java正則表達(dá)式如何獲取xml文件中指定節(jié)點(diǎn)的值問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06Java項(xiàng)目中添加外部jar包的兩種方式(收藏版)
這篇文章主要介紹了java項(xiàng)目中添加外部jar包的兩種方式,第二種方式是將外部jar包引入到本地maven倉(cāng)庫(kù)中,本文給大家講解的非常詳細(xì),需要的朋友可以參考下2023-03-03Java實(shí)現(xiàn)猜數(shù)字小游戲代碼
大家好,本篇文章主要講的是Java實(shí)現(xiàn)猜數(shù)字小游戲代碼,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下2022-01-01Mybatis事務(wù)如何跟Spring結(jié)合(數(shù)據(jù)庫(kù)事務(wù)特性和Spring事務(wù)管理源碼)
MyBatis與Spring的事務(wù)結(jié)合主要是通過(guò)Spring的事務(wù)管理和MyBatis的數(shù)據(jù)庫(kù)操作來(lái)實(shí)現(xiàn)的,在本文中,我們將從數(shù)據(jù)庫(kù)事務(wù)特性和Spring事務(wù)管理源碼兩個(gè)角度來(lái)分析MyBatis事務(wù)如何與Spring結(jié)合到一起的原理,感興趣的朋友一起看看吧2024-01-01spring boot actuator監(jiān)控超詳細(xì)教程
Spring Boot Actuator就是一款可以幫助你監(jiān)控系統(tǒng)數(shù)據(jù)的框架,其可以監(jiān)控很多很多的系統(tǒng)數(shù)據(jù),接下來(lái)通過(guò)本文給大家介紹spring boot actuator監(jiān)控超詳細(xì)教程,感興趣的朋友一起看看吧2021-10-10java開(kāi)發(fā)Activiti進(jìn)階篇流程實(shí)例詳解
這篇文章主要為大家介紹了java開(kāi)發(fā)Activiti進(jìn)階篇流程實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08關(guān)于BeanUtils.copyProperties(source, target)的使用
這篇文章主要介紹了關(guān)于BeanUtils.copyProperties(source, target)的使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06java:程序包javax.servlet.http不存在問(wèn)題解決
這篇文章主要給大家介紹了關(guān)于java:程序包javax.servlet.http不存在問(wèn)題解決的相關(guān)資料,如果引用的包依賴的庫(kù)文件缺失或版本不匹配,就會(huì)導(dǎo)致"Java 程序包不存在"的錯(cuò)誤,需要的朋友可以參考下2023-10-10Spring?Security中如何獲取AuthenticationManager對(duì)象
有時(shí)需要使用AuthenticationManager(以下簡(jiǎn)稱Manager)對(duì)象,可是這個(gè)對(duì)象不是Bean,沒(méi)有直接保存在Spring的Bean庫(kù)中,那么如何獲取Spring Security中的這個(gè)對(duì)象呢,需要的朋友可以參考下2022-11-11MyBatis各種類型查詢數(shù)據(jù)參數(shù)綁定的實(shí)現(xiàn)
本文主要介紹了MyBatis各種類型查詢數(shù)據(jù)參數(shù)綁定的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06