Kafka高階 6 Kafka配額限速機制

2021-10-25 09:11:18 字數 1571 閱讀 3357

生產者和消費者以極高的速度生產/消費大量資料或產生請求,從而占用broker上的全部資源,造成網路io飽和。有了配額(quotas)就可以避免這些問題。kafka支援配額管理,從而可以對producer和consumer的produce&fetch操作進行流量限制,防止個別業務壓爆伺服器。

為所有client id設定預設值,以下為所有producer程式設定其tps不超過1mb/s,即1048576/s,命令如下:

bin/kafka-configs.sh --zookeeper node1.itcast.cn:2181 --alter --add-config 'producer_byte_rate=1048576' --entity-type clients --entity-default
執行基準測試,觀察生產訊息的速率

bin/kafka-producer-perf-test.sh --topic test --num-records 50000 --throughput -1 --record-size 1000 --producer-props bootstrap.servers=node1.itcast.cn:9092,node2.itcast.cn:9092,node3.itcast.cn:9092 acks=1
結果:

50000 records sent, 1108.156028 records/sec (1.06 mb/sec)

對consumer限速與producer類似,只不過引數名不一樣。

為指定的topic進行限速,以下為所有consumer程式設定topic速率不超過1mb/s,即1048576/s。命令如下:

bin/kafka-configs.sh --zookeeper node1.itcast.cn:2181 --alter --add-config 'consumer_byte_rate=1048576' --entity-type clients --entity-default
執行基準測試:

bin/kafka-consumer-perf-test.sh --broker-list node1.itcast.cn:9092,node2.itcast.cn:9092,node3.itcast.cn:9092 --topic test --fetch-size 1048576 --messages 50000
結果為:

mb.sec:1.0743

使用以下命令,刪除kafka的quota配置

bin/kafka-configs.sh --zookeeper node1.itcast.cn:2181 --alter --delete-config 'producer_byte_rate' --entity-type clients --entity-default

bin/kafka-configs.sh --zookeeper node1.itcast.cn:2181 --alter --delete-config 'consumer_byte_rate' --entity-type clients --entity-default

Kafka入門和高階

kafka 是乙個分布式的基於 發布 訂閱模式 的流式平台,主要應用於大資料實時處理領域。它有三個關鍵能力 1.訂閱發布記錄流,它類似於企業中的訊息佇列 或 企業訊息傳遞系統 2.以容錯的方式儲存記錄流 3.實時記錄流 kafka 的應用 kafka 可以建立流資料管道,可靠性的在系統或應用之間獲取...

Kafka高階知識(一)

kafka吞吐量大,延遲低,高可用,都是怎麼實現的?廢話不多說,往下看 應該先講低延遲,如果延遲高的話吞吐量是上不去的。低延遲的實現簡單概括為以下幾點 順序寫 這個順序寫的客觀條件就是hadoop生態圈的核心就是廉價機器組成巨大規模的集群,所以基本都是機械硬碟,順序寫的速度能達到600m s,隨即寫...

kafka 6 kafka快速讀取解析

總結補充 關於零拷貝記憶體中有幾分buffer kafka作為訊息中介軟體,雖然是基於磁碟做資料儲存。但是有高效能 高吞吐 低延遲等特點。磁碟順序讀寫效能高於記憶體的隨機讀寫 kafka將訊息記錄持久化到磁碟,有新訊息時,通過不斷追加的方式將message追加到檔案磁碟末尾 kafka利用了作業系統...