kafka支持配額管理,從而可以對Producer和Consumer的produce&fetch操作進行流量限制,防止個別業務壓爆服務器。本文主要介紹如何使用kafka的配額管理功能。
Kafka配額管理所能配置的對象(或者說粒度)有3種:
user + clientid
user
clientid
這3種都是對接入的client的身份進行的認定方式。其中,
如果kafka集群沒有開啟身份認證,則只能使用clientid方式來進行限流。
可配置的選項包括:
可以通過兩種方式來作配額管理:
使用第一種方式,必須重啟broker,而且還不能針對特定client-id設置。所以,推薦大家使用第二種方式。
kafka官方的二進制包中,包含了一個腳本bin/kafka-configs.sh,支持針對user,client-id,(user,client-id)等三種緯度設置配額(也是通過修改zk來實現的)。
#1. 配置user+clientid。例如,user為”user1”,clientid為”clientA”。bin/kafka-configs.sh --zookeeper localhost:2181 --alter --add-config 'producer_byte_rate=1024,consumer_byte_rate=2048' \ --entity-type users --entity-name user1 --entity-type clients --entity-name clientA#2. 配置user。例如,user為”user1”bin/kafka-configs.sh --zookeeper localhost:2181 --alter --add-config 'producer_byte_rate=1024,consumer_byte_rate=2048' \ --entity-type users --entity-name user1#3. 配置client-id。例如,client-id為”clientA”bin/kafka-configs.sh --zookeeper localhost:2181 --alter --add-config 'producer_byte_rate=1024,consumer_byte_rate=2048' \ --entity-type clients --entity-name clientA
假定我們在啟動kafka時指定的zookeeper目錄是kafka_rootdir
#1. 配置user+clientid。例如,針對”user1”,”clientA”的配額是10MB/sec,其它clientid的默認配額是5MB/sec。znode: ${kafka_rootdir}/config/users/user1/clients/clientid; value: {"version":1,"config":{"producer_byte_rate":"10485760","consumer_byte_rate":"10485760"}}znode: {kafka_rootdir}/config/users/user1/clients/<default>; value: {"version":1,"config":{"producer_byte_rate":"5242880","consumer_byte_rate":"5242880"}}#2. 配置user。例如,”user2”的配額是1MB/sec,其它user的默認配額是5MB/sec。znode: ${kafka_rootdir}/config/users/user1; value: {"version":1,"config":{"producer_byte_rate":"1048576","consumer_byte_rate":"1048576"}}znode: ${kafka_rootdir/config/users/<default>; value: {"version":1,"config":{"producer_byte_rate":"5242880","consumer_byte_rate":"5242880"}}#3. 配置client-id。例如,”clientB”的配額是2MB/sec,其它clientid的默認配額是1MB/sec。znode:${kafka_rootdir}/config/clients/clientB'; value:{“version”:1,”config”:{“producer_byte_rate”:”2097152”,”consumer_byte_rate”:”2097152”}}</li>znode:${kafka_rootdir}/config/clients/; value:{“version”:1,”config”:{“producer_byte_rate”:”1048576”,”consumer_byte_rate”:”1048576”}}`
3 優先級
首先,我們需要明白,kafka在管理配額的時候,是以“組”的概念來管理的。而管理的對象,則是producer或consumer到broker的一條條的TCP連接。
那么在進行額度管理的時候,kafka首先需要確認,這條連接屬于哪個“組”,進而確定當前連接是否超過了所屬“組”的總額度。
在進行“組”判定的時候,依照以下的優先級順序依次判定:
1 /config/users/<user>/clients/<client-id>2 /config/users/<user>/clients/<default>3 /config/users/<user>4 /config/users/<default>/clients/<client-id>5 /config/users/<default>/clients/<default>6 /config/users/<default>7 /config/clients/<client-id>8 /config/clients/<default>
一旦找到了符合的“組”,即中止判定過程。
如果連接超過了配額值會怎么樣呢?kafka給出的處理方式是:延時回復給業務方,不使用特定返回碼。
具體到producer還是consumer,處理方式又有所不同:
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...
在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...
在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...
lol韓服王者排名實時查詢?查英雄聯盟職業選手排名的小程序叫 "韓服排名小程序 "所以當你打開上的搜索框,搜索 "韓服排名,可以看到韓服排名小程序,點擊即可添加。也方便搜索所有英雄聯盟職業選手的實時記錄,了解該選手的具體排名信息。怎么看lpl選手的rank?可以在opgg查詢,在小程序查看韓服排名,或者下載一個英雄聯盟官方助手。我們可以在游戲搜索中輸入他們的賬號名稱,然后就可以點擊進去查看他們的記...
16寸平板長寬多少厘米?16英寸板長35.4厘米,寬19.9厘米。16英寸是指筆記本電腦顯示屏的對角線長度,16英寸=40.6cm;根據主流筆記本電腦,筆記本電腦的長寬比為16:9,長:13.95英寸(35.4cm),寬:7.84英寸(19.9cm)。16寸電腦長寬多少?16英寸是指筆記本電腦顯示屏的對角線長度。根據主流筆記本16:9的比例,16英寸是指筆記本的長度為13.95英寸(35.4厘米)...
誰有《玻璃杯》歌詞?玻璃演唱:Cremebrulee組合你曾說我的心像玻璃。要像水一樣透明,哪怕滿是心碎。你可以很輕松的撒出來,假裝無所謂。我常說我就像一面玻璃。心痛,無愿,無悔,再灑脫,再美好的笑。我該為我破碎的心付出什么?嘿,一小杯裝不下太多眼淚多一點愛會讓你更累。撒一些,讓自己飛起來。輕輕敲打的玻璃總是太容易破碎。眼淚裝不下魅力。誰殲滅了誰,誰能理解?你曾說我的心像玻璃。要像水一樣透明,哪怕...