在kafka消费者文档https://kafka.apache.org/10/javadoc/index.html?org/apache/kafka/clients/consumer/KafkaConsumer.html中,声明需要格外小心,以确保每次都进行民意测验,否则经纪人会认为消费者已死。
最可靠的过程非常复杂:
对于消息处理时间意外变化的用例, 这些选项都不足够。推荐的方式 处理这些情况是将消息处理移至另一个线程, 允许消费者在处理器处理过程中继续调用民意调查 仍在工作。必须采取一些措施以确保承诺 偏移量不超过实际位置。通常,您必须 禁用自动提交并手动提交已处理的偏移量 仅在线程完成处理后记录(取决于 您需要的投放语义)。另请注意,您将需要 暂停分区,以便从轮询中没有收到新记录 直到线程处理完之前返回的内容为止。
春天的卡夫卡在引擎盖下帮我这个忙吗?
答案 0 :(得分:0)
documentation中非常简短地提到了心跳。显然,心跳是由Spring-Kafka在其他线程上管理的。
从版本0.10.1.0开始,心跳在后台线程上发送
您也可以阅读此github issue,以了解有关心跳的更多信息。