手动确认消息:Spring Cloud Stream Kafka

2024-02-15

我想要实现的场景是使用来自 Kafka 的消息,处理它,如果某些条件失败我不希望确认该消息。为此,我在 Spring Cloud Stream 参考文档中找到了,

自动提交偏移量 处理消息后是否自动提交偏移量。如果设置为 false,则消息标头中将提供确认标头以供后期确认。

默认值:true。

我的问题是,将 autoCommitOffset 设置为 false 后,我如何确认消息?代码示例将不胜感激。


我已经在这里提供了问题的答案https://github.com/spring-cloud/spring-cloud-stream/issues/575 https://github.com/spring-cloud/spring-cloud-stream/issues/575

本质上,这取决于设置 spring.cloud.stream.kafka.bindings.input.consumer.autoCommitOffset=false

然后处理确认标头:

@SpringBootApplication
@EnableBinding(Sink.class)
   public class ManuallyAcknowdledgingConsumer {

      public static void main(String[] args) {
         SpringApplication.run(ManuallyAcknowdledgingConsumer.class, args);
      }

      @StreamListener(Sink.INPUT)
      public void process(Message<?> message) {
         System.out.println(message.getPayload());
         Acknowledgment acknowledgment = message.getHeaders().get(KafkaHeaders.ACKNOWLEDGMENT, Acknowledgment.class);
        if (acknowledgment != null) {
           System.out.println("Acknowledgment provided");
           acknowledgment.acknowledge();
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

手动确认消息:Spring Cloud Stream Kafka 的相关文章

随机推荐

  • 为什么所需的 Startup 类不需要实现适当的接口,例如 IStartup?

    使用武士刀 为什么Startup类不应实现各自的接口 例如 interface IStartup void Configuration IAppBuilder app public class MyStartup IStartup publ
  • 在线求职门户系统用例图

    我想要一个在线求职门户系统的正确用例图 这是我的尝试 我有些疑惑 我看不出在哪里制作 登录 用例 这是该系统的一个重要用例 该用例图没有显示简单访问者和注册访问者之间的区别 前者可以查看职位空缺 查看建议 而无需拥有帐户 后者可以查看职位空
  • 使用 PyYAML.dump() 生成锚点?

    我希望能够在 PyYAML 的 dump 函数生成的 YAML 中生成锚点 有没有办法做到这一点 理想情况下 锚点应与 YAML 节点具有相同的名称 Example import yaml yaml dump a 1 2 3 a 1 2 3
  • 使用 php curl 抓取动态加载网站

    我是抓取新手 已经正式废弃了两个网站 但是当我尝试抓取动态加载网站时 问题出现了 当网站用 JavaScript 渲染时 我无法抓取网站的内容 有什么方法可以使用该网站的内容php curl或任何其他相关客户PHP 这就是我到目前为止所做的
  • 等到所有 jQuery Ajax 请求完成?

    如何让一个函数等待 直到所有 jQuery Ajax 请求在另一个函数内完成 简而言之 我需要等待所有 Ajax 请求完成后才能执行下一个请求 但如何呢 jQuery 现在定义了一个当函数 http api jquery com jQuer
  • F# 将元素添加到序列

    一个简单的问题我找不到答案 如何将元素添加到序列中 例如 我有一个 seq 和一个 newElem XElement 我想附加到它 Thanks 序列追加 gt let x 1 5 val x seq
  • 与普通对象类似地访问 JavaScript 映射

    我正在使用地图 因为我想存储一个对象作为键 我的问题是 我可以像访问普通对象一样访问地图吗 例如 let m new Map let obj foo bar m obj baz console log m obj 这应该按原样正常工作吗 还
  • 返回 R 中函数的函数

    我正在尝试创建一个创建并返回新函数的函数 我已经尝试过以下方法 但它不起作用 我想 myfunc lt function W myfunc2 function X Y W X return Y return myfunc2 我希望能够在 m
  • 示例设置.xml

    如何配置settings xml在马文 另外 请分享一个示例settings xml 这是带有注释的股票 settings xml 完整 未切割的文件位于底部 License
  • php:从字符串中删除 URL

    我有很多字符串 twitter 推文 当我回显它们时 我想从中删除链接 我无法控制该字符串 即使所有链接都以 http 开头 它们也可以以 或 结尾 不 并且后面是否有空格 此外 有时链接与其前面的单词之间没有空格 此类字符串的一个示例 T
  • 将 C++ 实例方法与 C 回调函数混合

    problem 我有一个来自 C 库的以下 C 回调签名Foo void RequestCallbackFunc int 该库还提供了用于注册所述回调的实用函数 extern void SetRequestCallback Requesta
  • 为 Mac 构建 libunwind

    我正在尝试在 Mac 上为 iOS 和 Mac 构建 libunwind 我能够解决一些编译问题 在 Mac 上构建 我使用配置项目 configure CC cc Ae D XOPEN SOURCE 500 并复制了elf h来自谷歌的
  • 检查函数参数类型是 Pythonic 吗?

    我知道 Python 中通常不赞成对函数参数进行类型检查 但我认为我已经想到了这样做是有意义的 在我的项目中 我有一个抽象基类Coord 有一个子类Vector 它具有更多功能 如旋转 改变大小等 数字列表和元组也将返回 Trueisins
  • Android GridView 有类别吗?

    是否可以使用类别或某种带有GridView在安卓中 我整理了一个简短的说明来说明我的想法 多谢 您可以使用粘性网格标题 http tonicartos github com StickyGridHeaders 直接使用库或作为模型来创建您自
  • 使用 mkl,加载共享库时出错:libmkl_intel_lp64.so

    我几乎是新使用的mkl图书馆 如果这看起来很愚蠢 请原谅 我尝试运行教程中的示例 here https software intel com en us node 529744 with ifort mkl dgemm example f
  • 使用现有数据导入 Magical Record

    我正在尝试使用Magical Record将数据导入到我的CoreData db 我正在实体工作Person眼下 A Person has firstName lastName personID属性 我知道我不需要 idString 我不在
  • 如何在不使用 DataContext 的情况下绑定到 Silverlight 中的本地属性?

    我有一个小问题 但发现了很多不同的 而且大多是模棱两可的答案 我有以下用户控件 我试图绑定到该控件中的公共属性 事件 每个人都说我必须使用数据上下文 但是 我真的不想这样做 我只想从控件的内部绑定到属性 XAML 要求是绑定必须是两种方式
  • UIActivityViewController 解雇 MailViewController

    我尝试通过 UIActivityViewController 发送电子邮件 它工作正常 但发送电子邮件后邮件视图不会被关闭 当用户按下 取消 按钮时 它也不会关闭 我可以做什么来解决这个问题 这是我使用过的代码 conf share vie
  • Java - 多个GSON?

    好的 我正在创建一个使用的应用程序JSON保存日期 我用了GSON as my JSON 处理器 是的 我知道如何使用Gson 我按照网络上的教程进行操作 问题是 Web 上的教程只保存 一个 json 数据 我的意思是 例如 Data1
  • 手动确认消息:Spring Cloud Stream Kafka

    我想要实现的场景是使用来自 Kafka 的消息 处理它 如果某些条件失败我不希望确认该消息 为此 我在 Spring Cloud Stream 参考文档中找到了 自动提交偏移量 处理消息后是否自动提交偏移量 如果设置为 false 则消息标