Kafka限流

Posted lenmom

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kafka限流相关的知识,希望对你有一定的参考价值。

1. 客户端认证

如果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。设置后立即生效。

 

2. Producer & Consumer设置

在producer和consumer的配置中需要加入client.id配置:

Producer:

props.put(ProducerConfig.CLIENT_ID_CONFIG, "clientA");

Consumer:

props.put(ConsumerConfig.CLIENT_ID_CONFIG, "clientA");

限流效果:

技术图片

 

 

3. 查看限流信息

zookeeper:

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

 

以上是关于Kafka限流的主要内容,如果未能解决你的问题,请参考以下文章

kafka的客户端限流(资源配额)

FlinkFlink 消费 kafka 实现 限流处理 RateLimiter

如何利用redis来进行分布式集群系统的限流设计

13张图让你百分百掌握kafka副本同步限流机制 |文末任性送35本技术书

Flink 限流

MySQL系列:kafka停止命令