登录
首页 >  Golang >  Go问答

如何在 Confluence kafka go 中实现 kafka 主题消息的消费确认?

来源:stackoverflow

时间:2024-03-09 17:24:26 439浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习Golang相关编程知识。下面本篇文章就来带大家聊聊《如何在 Confluence kafka go 中实现 kafka 主题消息的消费确认?》,介绍一下,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

我正在开发一个推送通知,可以向客户端发送许多消息。消息被发布到主题中,订阅者从同一主题中读取消息。如果在从主题偏移量读取消息后立即出现错误,即使我无法发送消息,我的订阅者也需要读取下一条消息并发送它。我所说的错误是指服务器停机或出现严重问题。

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


解决方案


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

如果从主题偏移读取消息后立即出现错误 增加,即使我无法向我的订阅者发送消息 需要阅读下一条消息并发送

我的理解是,您想要管理消费者如何处理确认(提交到 _consumer_offsets)。

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

有 3 个选项可用:

  1. 自动提交:使用 enable.auto.commit=true 时,每隔 auto.commit.interval.ms(默认 5 秒)自动提交。
  2. 同步提交:显式使用 commitSync() 同步提交,提交 poll() 返回的最新偏移量,如果失败则重试,直到获得确认。
  3. 异步提交:以前的方法会等待代理响应确认提交,这会使事情变慢。我们可以使用commitAsync(),它不是阻塞的,如果失败也不会重试。它更快。我们可以将回调传递给 commitAsync()。

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

希望这能回答您的问题。

致以诚挚的问候。

今天关于《如何在 Confluence kafka go 中实现 kafka 主题消息的消费确认?》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>