天天看點

(二)微服務保護——限流規則微服務保護——限流規則

  • 微服務保護——限流規則
    • 一、快速入門:
      • 1、簇點鍊路:
    • 二、流控模式:
      • (一)三種模式:
      • (二)關聯模式:
        • 1、例子:
        • 2、 使用場景:
        • 3、案例:
      • (三)鍊路模式:
        • 1、例子:
        • 2、案例
    • 三、流控效果:
      • (一)流控效果的種類
        • 1、快速失敗:
        • 2、warm up預熱模式:
        • 3、排隊等待:
      • (二)預熱模式:
      • (三)排隊等待:
    • 四、熱點參數限流:
      • (一)了解:

微服務保護——限流規則

一、快速入門:

1、簇點鍊路:

簇點鍊路:就是項目内的調用鍊路,鍊路中被監控的每個接口就是一個資源。

預設情況下sentinel會監控SpringMVC的每一個端點(Endpoint),是以SpringMVC的每一個端點(Endpoint)就是調用鍊路中的一個資源。

流控、熔斷等都是針對簇點鍊路中的資源來設定的,是以我們可以點選對應資源後面的按鈕來設定規則:

(二)微服務保護——限流規則微服務保護——限流規則
(二)微服務保護——限流規則微服務保護——限流規則
(二)微服務保護——限流規則微服務保護——限流規則
(二)微服務保護——限流規則微服務保護——限流規則

二、流控模式:

(一)三種模式:

在添加限流規則時,點選進階選項,可以選擇三種流控模式:

1、直接:統計目前資源的請求,觸發門檻值時對目前資源直接限流,也是預設的模式

2、關聯:統計與目前資源相關的另一個資源,觸發門檻值時,對目前資源限流

3、鍊路:統計從指定鍊路通路到本資源的請求,觸發門檻值時,對指定鍊路限流

(二)微服務保護——限流規則微服務保護——限流規則

(二)關聯模式:

1、例子:

AB兩個資源,A觸發了門檻值,對B進行限流;

2、 使用場景:

比如使用者支付時需要修改訂單狀态,同時使用者要查詢訂單。查詢和修改操作會争搶資料庫鎖,産生競争。業務需求是優先支付和更新訂單的業務,是以當修改訂單業務觸發門檻值時,需要對查詢訂單業務限流。

滿足下面條件可以使用關聯模式:

1、兩個有競争關系的資源

2、一個優先級較高,一個優先級較低

(二)微服務保護——限流規則微服務保護——限流規則

當/write資源通路量觸發門檻值時,就會對/read資源限流,避免影響/write資源

3、案例:

給誰限流,資源名就寫誰。

(二)微服務保護——限流規則微服務保護——限流規則
(二)微服務保護——限流規則微服務保護——限流規則
(二)微服務保護——限流規則微服務保護——限流規則
(二)微服務保護——限流規則微服務保護——限流規則

(三)鍊路模式:

1、例子:

統計從指定鍊路通路到本資源的請求,觸發門檻值時,對指定鍊路限流;也就是說:ABC三個服務請求都要通路D的請求,隻統計A服務到本資源的請求,觸發門檻值則對A的請求限流。

(二)微服務保護——限流規則微服務保護——限流規則

2、案例

(二)微服務保護——限流規則微服務保護——限流規則
(二)微服務保護——限流規則微服務保護——限流規則
(二)微服務保護——限流規則微服務保護——限流規則
(二)微服務保護——限流規則微服務保護——限流規則

三、流控效果:

(一)流控效果的種類

流控效果是指請求達到流控門檻值時應該采取的措施,包括三種:

1、快速失敗:

達到門檻值後,新的請求會被立即拒絕并抛出FlowException異常。是預設的處理方式。

2、warm up預熱模式:

對超出門檻值的請求同樣是拒絕并抛出異常。但這種模式門檻值會動态變化,從一個較小值逐漸增加到最大門檻值。

3、排隊等待:

讓所有的請求按照先後次序排隊執行,兩個請求的間隔不能小于指定時長,否則也會抛出異常,拒絕這個請求。

(二)預熱模式:

主要是為了避免冷啟動那一刻過高的并發導緻服務故障。是以讓門檻值逐漸增大,而不是一下子就達到門檻值的最大值。

(二)微服務保護——限流規則微服務保護——限流規則

(三)排隊等待:

(二)微服務保護——限流規則微服務保護——限流規則

對于不穩定的通路請求,使用排隊等待模式則可以讓請求穩定地被放行。比如在兩秒内,第一秒沒有請求,第二秒突然來了10個請求,這個時候達到門檻值,它會把這寫請求放到一個隊列中,然後隊列每隔200ms就放行一個請求。這就能讓波浪形的QPS變成平緩形的QPS。可以起到流量整形的效果。

四、熱點參數限流:

(一)了解:

(二)微服務保護——限流規則微服務保護——限流規則
(二)微服務保護——限流規則微服務保護——限流規則

注意點:熱點參數限流對預設的SpringMVC資源無效,需要給資源添加注解@SentinelResource(“資源名稱”)

(二)微服務保護——限流規則微服務保護——限流規則