在汇合的kafka go中阅读来自kafka主题的消息时,如何使用确认?

问题描述

我正在开发一个推式通知,该通知将许多消息发送给客户端。消息被发布到主题中,而订阅者从同一主题中读取消息。在从主题偏移读取消息后立即出现错误的情况下,即使我无法发送消息,我的订阅服务器也需要阅读下一条消息并将其发送。错误是指服务器宕机或严重的故障。

如何阅读带有确认的消息?

解决方法

我不确定我是否理解你的意思

在从主题偏移量读取消息后立即出现错误的情况下 增加,即使我无法发送消息我的订阅服务器 需要阅读下一封邮件并将其发送

我了解到的是,您要管理消费者处理确认的方式(属于_consumer_offsets)。

因此,Kafka允许消费者通过在__consumer_offsets主题中向Kafka发送消息来跟踪其在每个分区中的位置(偏移)。

3个可用选项:

  1. 自动提交:使用 enable.auto.commit = true ,每隔auto.commit.interval.ms(默认5s)自动提交一次。
  2. 同步提交:使用commitSync()显式同步提交,它会提交poll()返回的最新偏移量,并在失败之​​前重试,直到获得确认为止。
  3. 异步提交:以前的方法要等到代理响应确认提交后,事情才会变慢。我们可以使用commitAsync(),它不会阻塞,并且在失败时不会重试。它更快。我们可以将回调传递给commitAsync()。

因此,基本上,您可以让提交被自动处理。同步提交并等待代理的确认或通过回调异步提交。

希望这能回答您的问题。

最诚挚的问候。