生产者和消费者以极高的速度生产/消费大量数据或产生请求,从而占用broker上的全部资源,造成网络IO饱和。有了配额(Quotas)就可以避免这些问题。Kafka支持配额管理,从而可以对Producer和Consumer的produce&fetch操作进行流量限制,防止个别业务压爆服务器。
1. 限制producer端速率
为所有client id设置默认值,以下为所有producer程序设置其TPS不超过1MB/s,即1048576/s,命令如下:
进入到kafka目录下:
bin/kafka-configs.sh --zookeeper node1: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:9
本文介绍了Kafka的配额(Quotas)机制,用于限制producer和consumer的速率,防止过高流量导致服务器资源饱和。通过配置,可以对producer的TPS限制在1MB/s,同时对consumer也进行了类似的速率限制,确保系统的稳定运行。此外,还讲解了如何取消这些配额配置。
订阅专栏 解锁全文
1352

被折叠的 条评论
为什么被折叠?



