【发布时间】:2020-04-02 20:42:30
【问题描述】:
让我们假设我有四个分区和一个有 20 个消费者的消费者组。 所以只有四个消费者将工作,十六个将处于饥饿模式。如何优化其他 16 个消费者,让每个消费者都在工作,或者我们如何优化这种情况?
【问题讨论】:
标签: apache-kafka kafka-consumer-api spring-kafka kafka-producer-api
让我们假设我有四个分区和一个有 20 个消费者的消费者组。 所以只有四个消费者将工作,十六个将处于饥饿模式。如何优化其他 16 个消费者,让每个消费者都在工作,或者我们如何优化这种情况?
【问题讨论】:
标签: apache-kafka kafka-consumer-api spring-kafka kafka-producer-api
这是期望的行为。 Kafka消费者保证给定分区中的每条记录都会被按顺序消费;如果一个分区对于一个给定的组有多个消费者,这将不再成立。
此外,消费者组可以通过主题上的任何给定分区来检查他们的进度。如果同一组的多个消费者在竞争,那么记录偏移量将变得毫无意义。
我猜你想在启动应用程序节点时调整消费者组的大小,但请记住,组中的额外消费者也会增加弹性(在这种情况下,可能比你讨价还价的多一点!)
【讨论】: