首页 > 解决方案 > 在并行处理消息的同时处理 kafka 偏移

问题描述

我正在创建一个服务,该服务轮询来自 Kafka 主题的消息,并将轮询间隔期间收到的每条消息移交给线程池中的工作线程。工作线程通过与另一个服务对话来处理消息。

对于这种情况,我应该如何处理提交 Kafka 偏移量?如果我选择等待所有线程完成,则处理速度会降低。同样,一旦消息到达工作线程,如果消息处理过程中发生错误,则保证消息处理成功完成或将消息添加到死信主题以供稍后查看,前提是运行服务的主机不下去。因此,一旦我将消息提交到线程池,我可能会立即提交偏移量,但是我冒着因主机崩溃而丢失消息的风险。我应该如何防止在这里丢失消息,或者我应该使用其他策略来提交/维护偏移量。

标签: apache-kafkakafka-consumer-api

解决方案


推荐阅读