电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

詳解Springboot集成sentinel實現(xiàn)接口限流入門

瀏覽:40日期:2023-04-05 16:48:42

Sentinel是阿里巴巴開源的限流器熔斷器,并且?guī)в锌梢暬僮鹘缑妗?/p>

在日常開發(fā)中,限流功能時常被使用,用于對某些接口進(jìn)行限流熔斷,譬如限制單位時間內(nèi)接口訪問次數(shù);或者按照某種規(guī)則進(jìn)行限流,如限制ip的單位時間訪問次數(shù)等。

之前我們已經(jīng)講過接口限流的工具類ratelimter可以實現(xiàn)令牌桶的限流,很明顯sentinel的功能更為全面和完善。來看一下sentinel的簡介:

https://github.com/spring-cloud-incubator/spring-cloud-alibaba/wiki/Sentinel

Sentinel 介紹

隨著微服務(wù)的流行,服務(wù)和服務(wù)之間的穩(wěn)定性變得越來越重要。 Sentinel 以流量為切入點,從流量控制、熔斷降級、系統(tǒng)負(fù)載保護(hù)等多個維度保護(hù)服務(wù)的穩(wěn)定性。

Sentinel 具有以下特征:

豐富的應(yīng)用場景: Sentinel 承接了阿里巴巴近 10 年的雙十一大促流量的核心場景,例如秒殺(即突發(fā)流量控制在系統(tǒng)容量可以承受的范圍)、消息削峰填谷、實時熔斷下游不可用應(yīng)用等。 完備的實時監(jiān)控: Sentinel 同時提供實時的監(jiān)控功能。您可以在控制臺中看到接入應(yīng)用的單臺機(jī)器秒級數(shù)據(jù),甚至 500 臺以下規(guī)模的集群的匯總運行情況。 廣泛的開源生態(tài): Sentinel 提供開箱即用的與其它開源框架/庫的整合模塊,例如與 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相應(yīng)的依賴并進(jìn)行簡單的配置即可快速地接入 Sentinel。 完善的 SPI 擴(kuò)展點: Sentinel 提供簡單易用、完善的 SPI 擴(kuò)展點。您可以通過實現(xiàn)擴(kuò)展點,快速的定制邏輯。例如定制規(guī)則管理、適配數(shù)據(jù)源等。

來簡單使用一下Sentinel。

Sentinel包括服務(wù)端和客戶端,服務(wù)端有可視化界面,客戶端需引入jar后即可和服務(wù)端通信并完成限流功能。

啟動服務(wù)端的jar

https://github.com/alibaba/Sentinel/releases 在這個地址,下載release的jar,然后啟動即可。

這個jar是個標(biāo)準(zhǔn)的Springboot應(yīng)用,可以通過

java -jar sentinel-dashboard-1.6.0.jar來啟動,這樣就是默認(rèn)的設(shè)置,啟動在8080端口。也可以加上一些自定義配置來啟動

java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar。具體配置的解釋,可以到GitHub上看一下文檔。

這里我們直接使用默認(rèn)java -jar sentinel-dashboard-1.6.0.jar來啟動,之后訪問localhost:8080。可以看到界面:

詳解Springboot集成sentinel實現(xiàn)接口限流入門

輸入賬號密碼sentinel后進(jìn)入主界面

詳解Springboot集成sentinel實現(xiàn)接口限流入門

此時因為我們并沒有啟動客戶端,所以界面是空的。

啟動客戶端

新建一個Springboot項目,pom如下:

<?xml version='1.0' encoding='UTF-8'?><project xmlns='http://maven.apache.org/POM/4.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd'> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.5.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.maimeng.baobanq</groupId> <artifactId>baobanserver</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>baobanserver</name> <description>Demo project for Spring Boot</description> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <spring-cloud.version>Finchley.SR1</spring-cloud.version> </properties> <dependencies><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency><!--sentinel--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency> <!--sentinel end--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope> </dependency> <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>0.2.2.RELEASE</version><type>pom</type><scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>

需要注意引用的SpringCloud-alibaba的版本是0.2.2,當(dāng)前的最新版,如果是Springboot2.x的項目,需要引0.2.x的。Springboot1.x的引0.1.x的。

Sentinel的客戶端依賴也很簡單,spring-cloud-starter-alibaba-sentinel加這一個引用即可。

之后在application.yml里添加server的地址配置:

spring: application: name: baobanserver cloud: sentinel: transport: dashboard: localhost:8080 #eager: true

另外由于8080端口已被占用,自行設(shè)置一個端口,如8888.

做完這些,新建一個controller,

@RestControllerpublic class TestController { @GetMapping(value = '/hello') public String hello() { return 'Hello Sentinel'; }}

就是一個普通的controller接口。

之后啟動該項目。啟動后回到server的控制臺界面

詳解Springboot集成sentinel實現(xiàn)接口限流入門

發(fā)現(xiàn)并沒有什么變化。然后我們調(diào)用一下hello接口。之后再次刷新server控制臺。

詳解Springboot集成sentinel實現(xiàn)接口限流入門

界面已經(jīng)出現(xiàn)了我們的項目,并且有一堆規(guī)則。

詳解Springboot集成sentinel實現(xiàn)接口限流入門

因為Sentinel采用延遲加載,只有在主動發(fā)起一次請求后,才會被攔截并發(fā)送給服務(wù)端。如果想關(guān)閉這個延遲,就在上面的yml里把eager的注釋放掉。

然后在簇點鏈路里hello接口的流控那里設(shè)置限流規(guī)則,將單機(jī)閾值設(shè)為1.就代表一秒內(nèi)最多只能通過1次請求到達(dá)該hello接口。

詳解Springboot集成sentinel實現(xiàn)接口限流入門

之后再次連續(xù)訪問hello接口。

詳解Springboot集成sentinel實現(xiàn)接口限流入門

發(fā)現(xiàn)已經(jīng)被攔截了,限流已經(jīng)生效。

這樣就完成了一次簡單的限流操作,并且能看到各接口的QPS的統(tǒng)計。

后續(xù)我們來研究集群的限流、降級等功能。

到此這篇關(guān)于詳解Springboot集成sentinel實現(xiàn)接口限流入門的文章就介紹到這了,更多相關(guān)Springboot sentinel接口限流內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 杭州代理记账费用-公司注销需要多久-公司变更监事_杭州福道财务管理咨询有限公司 | 真空干燥烘箱_鼓风干燥箱 _高低温恒温恒湿试验箱_光照二氧化碳恒温培养箱-上海航佩仪器 | 全自动烧卖机厂家_饺子机_烧麦机价格_小笼汤包机_宁波江北阜欣食品机械有限公司 | 吊篮式|移动式冷热冲击试验箱-二槽冷热冲击试验箱-广东科宝 | 活性炭-果壳木质煤质柱状粉状蜂窝活性炭厂家价格多少钱 | 尚为传动-专业高精密蜗轮蜗杆,双导程蜗轮蜗杆,蜗轮蜗杆减速机,蜗杆减速机生产厂家 | 皮带式输送机械|链板式输送机|不锈钢输送机|网带输送机械设备——青岛鸿儒机械有限公司 | 铝合金风口-玻璃钢轴流风机-玻璃钢屋顶风机-德州东润空调设备有限公司 | 产业规划_产业园区规划-产业投资选址及规划招商托管一体化服务商-中机院产业园区规划网 | 上海办公室装修公司_办公室设计_直营办公装修-羚志悦装 | 行吊_电动单梁起重机_双梁起重机_合肥起重机_厂家_合肥市神雕起重机械有限公司 | 浙江宝泉阀门有限公司 | 办公室装修_上海办公室设计装修_时尚办公新主张-后街印象 | 上海电子秤厂家,电子秤厂家价格,上海吊秤厂家,吊秤供应价格-上海佳宜电子科技有限公司 | 山东集装箱活动房|济南集装箱活动房-济南利森集装箱有限公司 | 上海质量认证办理中心| 楼承板-开口楼承板-闭口楼承板-无锡海逵 | 净气型药品柜-试剂柜-无管道净气型通风柜-苏州毕恩思 | 都江堰招聘网-都江堰人才网 都江堰人事人才网 都江堰人才招聘网 邢台人才网_邢台招聘网_邢台123招聘【智达人才网】 | 家用净水器代理批发加盟_净水机招商代理_全屋净水器定制品牌_【劳伦斯官网】 | 粤丰硕水性环氧地坪漆-防静电自流平厂家-环保地坪涂料代理 | ALC墙板_ALC轻质隔墙板_隔音防火墙板_轻质隔墙材料-湖北博悦佳 | 合景一建-无尘车间设计施工_食品医药洁净车间工程装修总承包公司 | 高温热泵烘干机,高温烘干热泵,热水设备机组_正旭热泵 | 电车线(用于供电给电车的输电线路)-百科 | 老城街小面官网_正宗重庆小面加盟技术培训_特色面馆加盟|牛肉拉面|招商加盟代理费用多少钱 | 碳化硅,氮化硅,冰晶石,绢云母,氟化铝,白刚玉,棕刚玉,石墨,铝粉,铁粉,金属硅粉,金属铝粉,氧化铝粉,硅微粉,蓝晶石,红柱石,莫来石,粉煤灰,三聚磷酸钠,六偏磷酸钠,硫酸镁-皓泉新材料 | 铝合金重力铸造_铝合金翻砂铸造_铝铸件厂家-东莞市铝得旺五金制品有限公司 | 计算机毕业设计源码网| 万烁建筑设计院-建筑设计公司加盟,设计院加盟分公司,市政设计加盟 | 金属软管_不锈钢金属软管_巩义市润达管道设备制造有限公司 | 云南成考网_云南成人高考报名网 粤丰硕水性环氧地坪漆-防静电自流平厂家-环保地坪涂料代理 | 东莞喷砂机-喷砂机-喷砂机配件-喷砂器材-喷砂加工-东莞市协帆喷砂机械设备有限公司 | 闭端端子|弹簧螺式接线头|防水接线头|插线式接线头|端子台|电源线扣+护线套|印刷电路板型端子台|金笔电子代理商-上海拓胜电气有限公司 | 安徽免检低氮锅炉_合肥燃油锅炉_安徽蒸汽发生器_合肥燃气锅炉-合肥扬诺锅炉有限公司 | 工业电炉,台车式电炉_厂家-淄博申华工业电炉有限公司 | 首页_中夏易经起名网| 陕西安闸机-伸缩门-车牌识别-广告道闸——捷申达门业科技 | 网带通过式抛丸机,,网带式打砂机,吊钩式,抛丸机,中山抛丸机生产厂家,江门抛丸机,佛山吊钩式,东莞抛丸机,中山市泰达自动化设备有限公司 | 磁力抛光机_磁力研磨机_磁力去毛刺机-冠古设备厂家|维修|租赁【官网】 | 工业铝型材生产厂家_铝合金型材配件批发精加工定制厂商 - 上海岐易铝业 |