文章目錄
-
- 一。簡介
-
- 1.Sentinel 是什麼?
- 2.Sentinel的特征
- 3.Sentinel的特性
- 二。下載下傳安裝Sentinel控制台
- 三。整合Sentinel
- 四。測試
一。簡介
Sentinel: 分布式系統的流量防衛兵
1.Sentinel 是什麼?
随着微服務的流行,服務和服務之間的穩定性變得越來越重要。Sentinel 以流量為切入點,從流量控制、熔斷降級、系統負載保護等多個次元保護服務的穩定性。
2.Sentinel的特征
-
:Sentinel 承接了阿裡巴巴近 10 年的雙十一大促流量的核心場景,例如秒殺(即突發流量控制在系統容量可以承受的範圍)、消息削峰填谷、叢集流量控制、實時熔斷下遊不可用應用等。豐富的應用場景
-
:Sentinel 同時提供實時的監控功能。您可以在控制台中看到接入應用的單台機器秒級資料,甚至 500 台以下規模的叢集的彙總運作情況。完備的實時監控
-
:Sentinel 提供開箱即用的與其它開源架構/庫的整合子產品,例如與 Spring Cloud、Dubbo、gRPC的整合。您隻需要引入相應的依賴并進行簡單的配置即可快速地接入 Sentinel。廣泛的開源生态
-
:Sentinel 提供簡單易用、完善的 SPI擴充接口。您可以通過實作擴充接口來快速地定制邏輯。例如定制規則管理、适配動态資料源等。完善的 SPI 擴充點
3.Sentinel的特性
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TP35EMRR1T3FEROBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLxYTN5MTMwUTM1IjMxAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
官方中文文檔:https://github.com/alibaba/Sentinel/wiki/%E4%BB%8B%E7%BB%8D
二。下載下傳安裝Sentinel控制台
1.sentinel元件由兩部分組成:
2.jar包下載下傳位址:https://github.com/alibaba/Sentinel/releases
根據自己的需要進行下載下傳,這裡我選擇的是較為穩定的1.7版本:
3.運作前提條件:
-
jdk環境已經配好,從 Sentinel 1.5.0 開始僅支援 JDK 1.7 或者以上版本。Sentinel 1.5.0
之前的版本最低支援 JDK 1.6。
- sentinel預設8080端口未被占用
4.使用java-jar指令即可運作
5.通路http://localhost:8080/,即可打開sentinel控制台,初始登入賬号以及密碼均為sentinel:
三。整合Sentinel
1.在pom.xml檔案中添加以下依賴:
<!--springcloud alibb nacos依賴 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.3.RELEASE</version>
</dependency>
<!--springcloud alibb sentinel依賴 1.7版本依賴-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
<version>2.2.0.RELEASE</version>
</dependency>
<!--springcloud alibb sentinel依賴 1.8版本依賴-->
<!--<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
<version>2.2.3.RELEASE</version>
</dependency>-->
<!--springBoot整合web依賴 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
2.在application.yml配置檔案中添加以下配置:
3.啟動類加上@EnableDiscoveryClient注解,将服務注冊到nacos:
4.controller控制器示例代碼如下:
@RestController
public class SentinelController {
@GetMapping("/testA")
public String testA() {
return "------testA";
}
@GetMapping("/testB")
public String testB() {
return "------testB";
}
}
四。測試
1.首先啟動nacos注冊中心:
2.啟動8401服務:
3.通路通路http://localhost:8080/,打開sentinel控制台
發現空空如也,沒有監測到任何的服務,這是因為sentinel所采用的懶加載機制,若不通路相關的接口,sentinel将不會進行加載
4.通路相應的接口,再次重新整理sentinel控制台,發現接口已被監測到:
5.多通路幾次相關接口,可以在實時監控中看見每一個restful風格接口時段通路資料情況:
6.在簇點鍊路中可以檢視到全部的接口情況: