kafka限流(quota)设置

12月 24, 2016 |

如果kafka客户端是认证的。那么可以使用userId和clientId两种认证方式。如果没有认证只能使用clientId限流。

bin/kafka-configs.sh --zookeeper localhost:2181 --alter --add-config 'producer_byte_rate=1048576,consumer_byte_rate=1024' --entity-type clients --entity-name clientA

对clientId=clientA的客户端添加限流设置。producer_byte_rate表示每秒最多能写入到消息量,单位为byte/sec。consumer_byte_rate表示每秒最多能消费的消息了,单位也为byte/sec。
可以使用bin/kafka-producer-perf-test.sh压力测试脚本来验证你的限流配置是否生效。

bin/kafka-producer-perf-test.sh --topic test_perf --num-records 10000 --record-size 100 --throughput 150 --producer-props bootstrap.servers=localhost:9092 client.id=clientA

注意"client.id=clientA"属性值。
当然,你会简单的zookeeper命令行操作,也可以登录zookeeper执行如下的命令

[zk: localhost:2181(CONNECTED) 16] get /config/clients/clientA
{"version":1,"config":{"producer_byte_rate":"20480","consumer_byte_rate":"1024"}}

发现kafka将我们的限流设置以json的格式写入了zookeeper中。

Posted in: Kafka

Comments are closed.