一、qps限流
直接拒絕方式是預設的流量控制方式,當qps超過任意規則的閾值後,新的請求就會被立即拒絕,拒絕方式為丟擲flowexception
二、warm up
warm up方式,即預熱/冷啟動方式。當系統長期處於低水位的情況下,當流量突然增加時,直接把系統拉公升到高水位可能瞬間把系統壓垮。通過"冷啟動",讓通過的流量緩慢增加,在一定時間內逐漸增加到閾值上限,給冷系統乙個預熱的時間,避免冷系統被壓垮
三、排隊等待
勻速排隊方式會嚴格控制請求通過的間隔時間,也即是讓請求以均勻的速度通過,對應的是漏桶演算法
當請求不超過閾值的情況下,發起的請求會勻速排隊,而不會出現異常,每500毫秒處理乙個請求。當處理出現異常超過500毫秒,則會自動降級提示
直接
預設的流控模式,不講
關聯
當兩個資源之間具有資源爭搶或者依賴關係的時候,這兩個資源便具有了關聯。比如對資料庫同乙個欄位的讀操作和寫操作存在爭搶,讀的速度過高會影響寫得速度,寫的速度過高會影響讀的速度。如果放任讀寫操作爭搶資源,則爭搶本身帶來的開銷會降低整體的吞吐量。可使用關聯限流來避免具有關聯關係的資源之間過度的爭搶,舉例來說,read_db 和 write_db 這兩個資源分別代表資料庫讀寫,我們可以給 read_db 設定限流規則來達到寫優先的目的:設定 strategy 為 ruleconstant.strategy_relate 同時設定 refresource 為 write_db。這樣當寫庫操作過於頻繁時,讀資料的請求會被限流。
鏈路
稍微比較麻煩
qps+關聯
當/teste訪問出現了問題,則/testa同時也不能訪問
一般用在訂單和支付服務上,當訂單服務出現故障,則同時將支付服務關閉,並友好提示
sentinel限流中介軟體原理
sentinel 專門為這種場景提供了勻速器的特性,可以把突然到來的大量請求以勻速的形式均攤,以固定的間隔時間讓請求通過,以穩定的速度逐步處理這些請求,起到 削峰填谷 的效果,從而避免流量突刺造成系統負載過高。同時堆積的請求將會排隊,逐步進行處理 當請求排隊預計超過最大超時時長的時候則直接拒絕,而不...
Sentinel實現介面限流並用Nacos儲存規則
官網介紹 sentinel以 流量 為切入點,在流量控制,斷路和負載保護等多個領域開展工作,以保護服務可靠性 sentinel dashboard的使用 應用搭建 新增pom org.springframework.cloud spring cloud starter alibaba sentine...
服務熔斷,降級Sentinel
是否集群 不需要集群 流控模式 流控效果 排隊等待,超過閾值部分進行排隊等待,底層使用漏桶演算法,適用於流量時多時少的情況 sentinelresource 註解 注意 註解方式埋點不支援 private 方法。sentinelresource用於定義資源,並提供可選的異常處理和 fallback ...