Kafka 配额限速机制
背景
生产者和消费者以极高的速度生产/消费大量数据或产生请求,从而占用broker上的全部资源,造成网络 IO 饱和。有了配额(Quotas)就可以避免这些问题。Kafka 支持配额管理,从而可以对 Producer 和 Consumer 的 produce&fetch 操作进行流量限制,防止个别业务压爆服务器。
限制producer端速率
为所有 client id 设置默认值,以下为所有 producer 程序设置其 TPS 不超过 1MB/s,即 1048576/s,命令如下:
1 | ./bin/kafka-configs.sh --zookeeper IP:2181 --alter --add-config 'producer_byte_rate=1048576' --entity-type clients --entity-default |
限制consumer端速率
对consumer限速与producer类似,只不过参数名不一样。为指定的topic进行限速,以下为所有 consumer 程序设置topic速率不超过 1MB/s,即 1048576/s。命令如下:
1 | ./bin/kafka-configs.sh --zookeeper IP:2181 --alter --add-config 'consumer_byte_rate=1048576' --entity-type clients --entity-default |
取消Kafka的Quota配置
使用以下命令,删除Kafka的Quota配置:
1 | ./bin/kafka-configs.sh --zookeeper IP:2181 --alter --delete-config 'producer_byte_rate' --entity-type clients --entity-default |
此文章版权归 程序园 所有,如有转载,请注明来自原作者。
评论
ValineDisqus