apache-kafka - Kafka重置分区是否重新消费
问题描述
如果我从我的主题中消费并自己管理偏移量,我处理的一些记录是成功的,然后我将偏移量向前移动,但偶尔我会处理会引发异常的记录。我仍然需要向前移动偏移量。但稍后我将需要重置偏移量并重新处理失败的记录。是否有可能在推进偏移量以设置一个标志来表示如果我再次消费该事件时忽略或消费?
解决方案
处理这些记录的最佳方法不是重置偏移量,而是使用死信队列,本质上是将它们发布到另一个 kafka 主题以便稍后重新处理。这样,您的主要消费者可以专注于处理不抛出异常的记录,而其他一些消费者可以不断地监听并尝试处理抛出错误的记录。
如果第二个消费者在尝试重新处理消息时仍然抛出异常,如果异常是由暂时性问题(系统暂时不可用、数据库问题、网络故障等)引起的,您可以选择将它们重新发布到同一个队列,或者只是选择记录消息 ID 和内容,以及对问题所在的最佳猜测,以便稍后手动查看。
推荐阅读
- haskell - 为什么绑定运算符(>>=)按原样定义?
- javascript - 维护与数据库同步的 MobX 对象
- c# - Web.config c#中连接字符串的加密
- c# - 在 Xamarin.Forms 中使用 Android 绑定
- javascript - 如何使用 Apollo Client 创建订阅配置?
- regex - 使用 Regexextract 从 Google 表格中的文本中提取日、月、2 位数年份
- gstreamer - 如何在 Yocto 的目标映像上安装已编译的 gstreamer-plugins
- android - Android 在 Android 中设置 Spinner 值
- python - 字符串具有指定长度的Python数据帧
- c - Process Forks Shell,然后整个程序停止?