1. 程式人生 > >系統穩定性保障

系統穩定性保障

常見保護措施

這裡寫圖片描述

限流演算法

漏桶演算法

漏桶演算法的主要思想如下:

  1. 漏桶容量固定,按照固定速率流出水滴直到桶變空;
  2. 水滴可以以任意速率流入漏桶,如果桶滿則溢位(丟棄);
            這裡寫圖片描述

令牌桶演算法

令牌桶演算法的主要思想如下:

  1. 桶的容量固定,令牌被按照固定的速率加入到桶中;
  2. 桶滿則溢位(丟棄);
  3. 請求到來時先獲取令牌,獲取到則進行處理,否則阻塞、等待或者拒絕;
       這裡寫圖片描述
    Guava的RateLimiter提供了實現。

Nginx層限流

  Nginx自帶了兩個模組:連線數限流模組ngx_http_limit_conn_module和漏桶演算法實現的請求限流模組ngx_http_limit_req_module。此外,還可以與Lua指令碼結合實現簡單限流邏輯。