SpringBoot適配Sentinel

Sentinel 介紹

隨着微服務的流行,服務和服務之間的穩定性變得越來越重要。 Sentinel 以流量爲切入點,從流量控制、熔斷降級、系統負載保護等多個維度保護服務的穩定性。

Sentinel 具有以下特徵:

  • 豐富的應用場景: Sentinel 承接了阿里巴巴近 10 年的雙十一大促流量的核心場景,例如秒殺(即突發流量控制在系統容量可以承受的範圍)、消息削峯填谷、實時熔斷下游不可用應用等。

  • 完備的實時監控: Sentinel 同時提供實時的監控功能。您可以在控制檯中看到接入應用的單臺機器秒級數據,甚至 500 臺以下規模的集羣的彙總運行情況。

  • 廣泛的開源生態: Sentinel 提供開箱即用的與其它開源框架/庫的整合模塊,例如與 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相應的依賴並進行簡單的配置即可快速地接入 Sentinel。

  • 完善的 SPI 擴展點: Sentinel 提供簡單易用、完善的 SPI 擴展點。您可以通過實現擴展點,快速的定製邏輯。例如定製規則管理、適配數據源等。

Sentinel 控制檯

Sentinel 控制檯最少應該包含如下功能:

Sentinel控制檯部署步驟:

   1. 下載sentinel-dashboard.jar

   2. 啓動

      nohup     java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar &

    其中 -Dserver.port=8080 用於指定 Sentinel 控制檯端口爲 8080。比如:-Dcsp.sentinel.dashboard.server=10.122.97.198:8080

Springboot適配sentinel

1. springboot項目引入sentinel,需要加上以下依賴:

       <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
            <version>2.1.0.RELEASE</version>
        </dependency>
         
        <dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>sentinel-transport-simple-http</artifactId>
            <version>1.7.1</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>sentinel-core</artifactId>
            <version>1.7.1</version>
        </dependency>

spring-cloud-starter-alibaba-sentinel:用於啓動sentinel

sentinel-transport-simple-http :客戶端需要引入 Transport 模塊來與 Sentinel 控制檯進行通信

sentinel-core :是sentinel的核心包

2. 配置啓動參數,需要在配置文件或jvm啓動加入參數

    spring:
         application:
              name: cloud-game-web
         cloud:
             sentinel:
                  transport:
                      port: 8720
                      dashboard: 10.122.97.198:8080

或者應用啓動時加入 JVM 參數 -Dcsp.sentinel.dashboard.server=consoleIp:port 指定控制檯地址和端口

3. 觸發客戶端初始化

   確保客戶端有訪問量,Sentinel 會在客戶端首次調用的時候進行初始化,開始向控制檯發送心跳包。

 

參考:https://github.com/alibaba/Sentinel/wiki/控制檯

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章