Raj*_*Raj 4 apache-kafka kafka-consumer-api
我试图了解在 kafka 消费者中处理需要更长时间处理的记录的更好选择是什么?我进行了一些测试来理解这一点,并观察到我们可以通过修改max.poll.records或来控制这一点max.poll.interval.ms。
现在我的问题是,什么是更好的选择?请建议。
max.poll.records简单地定义在一次调用中返回的最大记录数poll()。
现在max.poll.interval.ms定义调用之间的延迟poll()。
max.poll.interval.ms:poll()使用消费者组管理时调用之间的最大延迟 。这为消费者在获取更多记录之前可以空闲的时间设置了上限。如果poll()在此超时到期之前未调用,则认为消费者失败,组将重新平衡以将分区重新分配给另一个成员。对于使用group.instance.id达到此超时的非空值的消费者,不会立即重新分配分区。相反,消费者将停止发送心跳,分区将在 到期后重新分配session.timeout.ms。这反映了已关闭的静态消费者的行为。
我相信您可以调整两者以获得预期的行为。例如,您可以计算消息的平均处理时间。如果平均处理时间是 1 秒,max.poll.records=100那么您应该为轮询间隔留出大约 100+ 秒的时间。
| 归档时间: |
|
| 查看次数: |
2475 次 |
| 最近记录: |