日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

6.Spring Cloud Alibaba教程:Sentinel流量防卫兵的介绍与基本使用

發(fā)布時(shí)間:2025/3/19 javascript 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 6.Spring Cloud Alibaba教程:Sentinel流量防卫兵的介绍与基本使用 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

官網(wǎng)

https://sentinelguard.io/

服務(wù)雪崩

微服務(wù)中各個(gè)服務(wù)之間通過(guò)http/rpc互相調(diào)用,假設(shè)其中1個(gè)服務(wù)因?yàn)榫W(wǎng)絡(luò)或自身原因出現(xiàn)問(wèn)題,調(diào)用這個(gè)服務(wù)就會(huì)出現(xiàn)線程堵塞,此時(shí)若有大量請(qǐng)求出現(xiàn),線程資源會(huì)因?yàn)槎氯谋M,導(dǎo)致服務(wù)調(diào)用方癱瘓,最后引起其他服務(wù)也相繼癱瘓,這就是服務(wù)雪崩。

為了解決這個(gè)問(wèn)題,業(yè)界提出了熔斷器模型。阿里巴巴開(kāi)源的Sentinel,就實(shí)現(xiàn)了熔斷器模型。

Sentinel是什么

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

Sentinel 具有以下特征:

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

Sentinel 分為兩個(gè)部分:

  • 核心庫(kù)(Java 客戶(hù)端) 不依賴(lài)任何框架/庫(kù),能夠運(yùn)行于所有 Java 運(yùn)行時(shí)環(huán)境,同時(shí)對(duì) Dubbo / Spring Cloud 等框架也有較好的支持。
  • 控制臺(tái)(Dashboard) 基于 Spring Boot 開(kāi)發(fā),打包后可以直接運(yùn)行,不需要額外的 Tomcat 等應(yīng)用容器。

Sentinel 控制臺(tái)

下載控制臺(tái)

打開(kāi)Sentinel Release頁(yè)面下載jar包,我這里選擇的版本是1.8.0。下載完畢后,放到 /usr/local/sentinel

啟動(dòng)控制臺(tái)

  • 端口號(hào)可以根據(jù)實(shí)際情況自己更改,這里用的是8888
  • 如果sentinel裝在另外的服務(wù)器,localhost需要改成實(shí)際IP地址
  • 可以寫(xiě)個(gè)sh腳本文件,方便下次啟動(dòng)
java -Dserver.port=8888 -Dcsp.sentinel.dashboard.server=localhost:8888 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.0.jar
  • 啟動(dòng)成功后,瀏覽器打開(kāi)8888端口地址,賬號(hào)密碼默認(rèn)都是sentinel

Spring Cloud Alibaba接入Sentinel

對(duì) consumer 服務(wù)都加上 sentinel 依賴(lài)

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency>

配置sentinel

  • 增加 spring.cloud.sentinel.transport.dashboard
  • 增加 feign.sentinel.enabled
spring:application:name: test-consumercloud:nacos:discovery:server-addr: 192.168.25.131:8848sentinel:transport:dashboard: 192.168.25.131:8888server:port: 8020feign:sentinel:enabled: truemanagement:endpoints:web:exposure:include: "*"

關(guān)閉 provider,啟動(dòng)consumer,這時(shí)候調(diào)用接口會(huì)超時(shí)。
因此,我們需要給consumer服務(wù)增加Fallback服務(wù),作用是調(diào)用外部接口失敗時(shí),缺省返回指定的數(shù)據(jù)

  • 對(duì)consumer服務(wù)增加HelloServiceFallback,放在包c(diǎn)om.train.alibaba.consumer.service.fallback
@Component public class HelloServiceFallback implements HelloService {@Overridepublic String echo(String name) {return "請(qǐng)檢查網(wǎng)絡(luò)是否正常";} }

繼續(xù)保持provider關(guān)閉狀態(tài),重新調(diào)用consumer,返回結(jié)果如下

刷新sentinel控制臺(tái),會(huì)發(fā)現(xiàn)多了個(gè)test-consumer,里面的數(shù)據(jù)就是consumer服務(wù)的訪問(wèn)流量數(shù)據(jù)

總結(jié)

以上是生活随笔為你收集整理的6.Spring Cloud Alibaba教程:Sentinel流量防卫兵的介绍与基本使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。