在Kafka消费者文档中https://kafka.apache.org/10/javadoc/index.html?org/apache/kafka/clients/consumer/kafkaconsumer.html 它指出,需要注意确保每隔一段时间就进行一次民意调查,否则经纪人会认为消费者已经死亡。
最可靠的程序相当复杂:
对于消息处理时间变化不可预测的用例,这两个选项都不够。处理这些情况的建议方法是将消息处理移到另一个线程,这样就允许使用者在处理器仍在工作时继续调用poll。必须注意确保承诺的抵消不会超过实际头寸。通常,只有在线程处理完记录之后,才必须禁用记录的自动提交和手动提交已处理的偏移量(取决于所需的传递语义)。还要注意,您需要暂停分区,以便在线程处理完之前返回的记录之前,不会从poll接收到新记录。
斯普林·Kafka在引擎盖下为我处理这件事吗?
1条答案
按热度按时间xjreopfe1#
文档中提到的心跳非常简短。显然心跳是由spring kafka在另一个线程上管理的。
因为版本0.10.1.0的心跳是在后台线程上发送的
您还可以阅读这个github问题,以了解更多关于心跳的信息。