您好,登錄后才能下訂單哦!
Gubernator速率限制服務怎么理解,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
Gubernator 是一個分布式,高性能,云原生和無狀態(tài)的速率限制服務。
Gubernator 可以把請求的速率平均限制到整個集群,這意味著,您可以簡單的通過增加更多的節(jié)點平滑的擴展系統(tǒng)服務能力。
Gubernator不依賴于外部的緩存,如MemCache或者Redis這樣的軟件,也不依賴于其他的服務,這意味著本服務可以動態(tài)的增加服務能力。
Gubernator保持磁盤的無狀態(tài)能力,基于每個請求的配置處理能力。
Gubernator提供了GPRC和HTTP的訪問API接口。
可以做為一個邊緣服務或者分離的服務進行速率限制。
可以做為自定義服務的庫來使用。
支持可擴展的外部環(huán)境進行速率限制。
Gubernator是俄語長官的英語發(fā)音,聽起來不錯吧。
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è)資訊頻道,感謝您對億速云的支持。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。