官網介紹:sentinel以「流量」為切入點,在流量控制,斷路和負載保護等多個領域開展工作,以保護服務可靠性
sentinel dashboard的使用:
應用搭建:
新增pom
org.springframework.cloud
spring-cloud-starter-alibaba-sentinel
新增配置
spring.cloud.sentinel.transport.dashboard=localhost:8080
測試類,這裡用到了nacos配置中心,沒看的夥伴可以看nacos實現配置中心
@restcontroller
@refreshscope
public class testnacoscontroller ")
private string name; //從nacos的配置中心獲取值
public string hello()
}
然後在sentinel 中設定關於/config 的相關限流規則
qps:每秒允許訪問次數
單機閾值:1次
含義為:每秒可以訪問介面/config 1次
測試:http://localhost:8011/config
當在1秒內訪問的次數超過1次時,將會報上面的錯。
但是細心的夥伴將會發現,當sentinel重新啟動時,sentinel dashboard中原來的資料將會全部消失,這樣就需要重新定義限流規則,無疑是不可取的。
可以將sentinel中定義的限流規則儲存到配置中心裡面。具體的實現方法如下:
新增pom
com.alibaba.csp
sentinel-datasource-nacos
1.5.2
spring:
cloud:
sentinel:
transport:
dashboard: 127.0.0.1:8080
datasource:
ds:nacos:
### nacos連線位址
server-addr: 127.0.0.1:8848
## nacos連線的分組
group-id: default_group
###路由儲存規則
rule-type: flow
### 讀取配置檔案的 data-id
data-id: member-sentinal
### 讀取培訓檔案型別為json
data-type: json
sentinel服務限流
一 qps限流 直接拒絕方式是預設的流量控制方式,當qps超過任意規則的閾值後,新的請求就會被立即拒絕,拒絕方式為丟擲flowexception 二 warm up warm up方式,即預熱 冷啟動方式。當系統長期處於低水位的情況下,當流量突然增加時,直接把系統拉公升到高水位可能瞬間把系統壓垮。通...
sentinel限流中介軟體原理
sentinel 專門為這種場景提供了勻速器的特性,可以把突然到來的大量請求以勻速的形式均攤,以固定的間隔時間讓請求通過,以穩定的速度逐步處理這些請求,起到 削峰填谷 的效果,從而避免流量突刺造成系統負載過高。同時堆積的請求將會排隊,逐步進行處理 當請求排隊預計超過最大超時時長的時候則直接拒絕,而不...
介面限流演算法
在開發高併發系統時,有三把利器來保護系統 快取 降級和限流。下面來看看限流量的一些演算法 1.計數器法 它是限流演算法中最簡單最容易的一種演算法,比如我們要求某乙個介面,1分鐘內的請求不能超過10次,我們可以在開始時設定乙個計數器,每次請求,該計數器 1 如果該計數器的值大於10並且與第一次請求的時...