溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Gubernator速率限制服務怎么理解

發(fā)布時間:2021-10-21 09:20:09 來源:億速云 閱讀:109 作者:柒染 欄目:大數(shù)據(jù)

Gubernator速率限制服務怎么理解,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

Gubernator 是一個分布式,高性能,云原生和無狀態(tài)的速率限制服務。

關鍵特性

  1. Gubernator 可以把請求的速率平均限制到整個集群,這意味著,您可以簡單的通過增加更多的節(jié)點平滑的擴展系統(tǒng)服務能力。

  2. Gubernator不依賴于外部的緩存,如MemCache或者Redis這樣的軟件,也不依賴于其他的服務,這意味著本服務可以動態(tài)的增加服務能力。

  3. Gubernator保持磁盤的無狀態(tài)能力,基于每個請求的配置處理能力。

  4. Gubernator提供了GPRC和HTTP的訪問API接口。

  5. 可以做為一個邊緣服務或者分離的服務進行速率限制。

  6. 可以做為自定義服務的庫來使用。

  7. 支持可擴展的外部環(huán)境進行速率限制。

  8. Gubernator是俄語長官的英語發(fā)音,聽起來不錯吧。

無狀態(tài)配置

Gubernator是一個無狀態(tài)的服務,不需要磁盤空間保存歷史操作,沒有配置和數(shù)據(jù)會緩存到磁盤,這是因為每一個請求,包括配置信息,速率限制配置信息僅僅是一個64位整數(shù)。

例如,對GRPC進行限制

rate_limits:
 #速率限制的名稱
 - name: requests_per_sec
 #一個唯一鍵值,用來標識請求限制的實例名稱
 unique_key: account_id=123|source_ip=172.0.0.1
 #請求的命種數(shù)量
 hits: 1
 #速度限制的請求總數(shù)
 limit: 100
 #限制速度的周期時長(毫秒)
 duration: 1000
 #計算速率限制的算法 0信號桶 1滴漏桶
 algorithm: 0
 #速度限制的行為 0允許每次批量請求 1非止批量請求 2允許全局緩存速率限制
 behavior: 0

如下所示:

rate_limits:
  # 速度限制的狀態(tài) OK=0,OVER_LIMIT =1
  - status: 0,
  # 當前配置限制
  limit: 10
  # 請求保持數(shù)量
  remaining: 7
  # 桶限制的unix時間戳,如果超過限制,設置時間不再返回OVER_LIMIT
  reset_time: 1551309219226 
  #關于每個請求的速率限制的附加原始信息
  metadata:
     "owner":"api-n03.staging.us-east-1.mailgun.org:9041"

速率限制算法

信號桶

開始是一個空桶,每次命令請求,桶內數(shù)據(jù)加1,直到桶滿了,如果桶滿了,將返回OVER_LIMIT,走到計時器清零,然后再開始循環(huán)。

沙漏桶

桶滿了,返回OVER_LIMIT,然后,桶中的數(shù)據(jù)通過 時長/限制 算出空余量,此時,如果有空間,可以繼續(xù)進入數(shù)據(jù)。

性能

在我們的產品環(huán)境中,我們的每個API每個請求限制為2,通過指定的時長進行限制,如下圖所示,每秒超過2000個請求的批量響應在1毫秒之內。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI