15.Sentinel使用入門

Sentinel入門

什么是Sentinel

  • Sentinel(分布式系統(tǒng)的流量防衛(wèi)兵)是阿里開源的一套用于服務容錯的綜合性解決方案。它們流量為切入點,從流量控制,熔斷降級,系統(tǒng)負載保護等多個維度來保護服務的穩(wěn)定性。
Sentinel具有以下特征:
  • 豐富的應用場景:Sentinel承接了阿里巴巴近10年的雙十一大促流量的核心場景,例如秒殺(即突發(fā)流量控制在系統(tǒng)容量可以承受的范圍),消息削峰填谷。集群流量控制,實時熔斷下游不可用應用等。
  • 完備的實時監(jiān)控:Sentinel提供了實時的監(jiān)控功能。通過控制可以看到接入應用的單臺機器秒級數(shù)據(jù),甚至500臺以下規(guī)模的集群的匯總運行情況。
  • 廣泛的開源生態(tài):Sentinel提供開箱即用的與其他開源框架/庫的整合模塊,例如與SpringCLoud,Dubbo,gRPC的整合。只需要進入相應的依賴并進行簡單的配置即可快速地接入Sentinel。
  • 完善的SPI擴展點:Sentinel提供簡單易用,完善的SPI擴展接口。您可以通過實現(xiàn)擴展接口來快速地定制邏輯。例如定制規(guī)則管理,適配動態(tài)數(shù)據(jù)源等。
Sentinel分為兩個部分:
  • 核心(Java客戶端)不依賴任何框架/庫,能夠運行于所有Java運行時環(huán)境,同時對Dubbo/Spring Cloud等框架也有比較好的支持。
  • 控制臺(Dashboard)基于Spring Boot開發(fā),打包后可以直接運行,不需要額外的Tomcat等應用容器。

微服務集成Sentinel

  • 為微服務集成Sentinel非常簡單,只需要加入Sentinel的依賴即可
  • 1.在pom.xml中加入下面依賴
<!--Sentinel-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
  • 編寫一個Controller測試使用
@RestController
@Slf4j
public class OrderControllerTwo {
    @RequestMapping("/order/message1")
    public String message1(){
        return "測試高并發(fā)";
    }
    @RequestMapping("/order/message2")
    public String message2(){
        return "測試高并發(fā)";
    }
}

安裝Sentinel控制臺

  • Sentinel提供一個輕 量級的控制臺,它提供機器發(fā)現(xiàn)、單機資源實時監(jiān)控以及規(guī)則管理等功能。
  • 1.下載jar包,解壓到文件夾
https://github.com/alibaba/Sentinel/releases
  • 2.啟動控制臺
#直接使用jar命令啟動項目(控制臺本身是一個SpringBoot項目)
java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -jar sentinel-dashboard-1.7.0.jar
  • 3.修改shop-order,在里面加入有關控制臺的配置
spring:
  cloud:
    sentinel:
      transport:
        port: 9999
        dashboard: 192.168.110.130:8080

實現(xiàn)一個接口的限流

  • 1.通過控制臺為message1添加一個流量控制規(guī)則


    image

    image
  • 2.通過控制臺快速頻繁訪問,觀察效果


    image

使用Docker安裝Sentinel控制臺

  • 執(zhí)行安裝腳本
docker run --name sentinel-dashboard -d -p  8858:8858 bladex/sentinel-dashboard:1.7.0
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容