Kafka消费者如何控制消费速度

消费太慢

考虑增加Topic的分区数,并且同时提升消费组的消费者数量,消费者数=分区数。(两者缺一不可)

消费太快

参考来源:https://blog.csdn.net/weixin_33797791/article/details/88003844?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.nonecase

调整参数:

  • fetch.max.bytes
  • 单次获取数据的最大消息数。

----------------------------------------------------------------

  • max.poll.records <= 吞吐量
  • 单次poll调用返回的最大消息数,如果处理逻辑很轻量,可以适当提高该值。
  • 一次从kafka中poll出来的数据条数,max.poll.records条数据需要在在session.timeout.ms这个时间内处理完
  • 默认值为500

----------------------------------------------------------------

  • consumer.poll(1000) 重要参数
  • 新版本的Consumer的Poll方法使用了类似于Select I/O机制,因此所有相关事件(包括reblance,消息获取等)都发生在一个事件循环之中。
  • 1000是一个超时时间,一旦拿到足够多的数据(参数设置),consumer.poll(1000)会立即返回 ConsumerRecords<String, String> records。
  • 如果没有拿到足够多的数据,会阻塞1000ms,但不会超过1000ms就会返回。
原文地址:https://www.cnblogs.com/yangxusun9/p/13049132.html