当前位置: 首页 > 知识库问答 >
问题:

我们能用Spring kafka只处理一次吗?

吉栋
2023-03-14

我正试图让Kafka的消费者消费一次<我的要求是:

  1. 从Topic读取数据
  2. 处理数据[涉及调用另一个API]
  3. 将响应写回Kafka
    我想知道在这种情况下是否可以完全一次?
    我知道用例满足Kafka流API,但我想从生产者/消费者API中知道?此外,如果让我们说在处理数据后,消费者因某种原因失败(处理应该只完成一次),那么处理此类情况的最佳方法是什么?
    此类情况可以有任何延续/检查点吗?
    我知道Kafka Streams API是生产-消费者-生产事务性的。这里还有,如果在调用API消费者崩溃后,流将从一开始就开始,对吗?
    请在这几点上帮忙。
    谢谢。

共有1个答案

李和昶
2023-03-14

对Spring for Apache Kafka以与Kafka Streams相同的方式支持一次语义。

看见

https://docs.spring.io/spring-kafka/docs/current/reference/html/#exactly-一次

https://docs.spring.io/spring-kafka/docs/current/reference/html/#transactions

记住,“恰好一次”意味着整个过程是成功的

消费-

只执行一次。但是,如果生产步骤失败(回滚事务),则消费-

因此,您需要使进程部分幂等。

 类似资料:
  • 问题内容: 我们有一个node.js服务器,该服务器将REST API实施为中央服务器的代理,而中央服务器具有一个略有不同且不对称的REST API。 我们的客户端运行在各种浏览器中,它要求节点服务器从中央服务器获取任务。节点服务器从中央服务器获取所有任务ID的列表,并将其返回给客户端。然后,客户端通过代理对每个ID进行两次REST API调用。 据我所知,这些工作都是异步完成的。在控制台日志中,

  • 但它不止一次地使用消息。有没有人面对过这个问题。此外,使用上述配置,使用者总是在一个批处理中只接收到一个消息。我尝试增加和,但没有任何影响。 在对ConcurrentKafkaListenerContainerFactory进行如下更改后,批处理配置的问题得到了解决: factory.getContainerProperties().SetackMode(org.springFramework.k

  • 本文向大家介绍解决spring 处理request.getInputStream()输入流只能读取一次问题,包括了解决spring 处理request.getInputStream()输入流只能读取一次问题的使用技巧和注意事项,需要的朋友参考一下 一般我们会在InterceptorAdapter拦截器中对请求进行验证 正常普通接口请求,request.getParameter()可以获取,能多次读

  • 我正在开发一个Android应用程序,我正在使用了解我的应用程序的安装来源。为此,我使用了firstInstall\u referer intent filter和一个我自己定制的过滤器。 是否有可能有两个广播接收器条目带有意图过滤器? 谷歌分析接收器 我的自定义广播接收器。

  • 我想知道为什么人们似乎不使用GraphQL jus与Redux。 我以前从未使用过GraphQL,但我想开始一个新项目,但阿波罗和继电器都不能说服我。目前,我正在创建一个使用react和redux以及“老式”RESTAPI的应用程序。我喜欢redux的想法,它将我的应用程序的全部信息存储在一个地方。 现在,据我所知,阿波罗和中继都做了类似的事情,但它们使用单独的存储,在这两者中,我们混合了逻辑和视

  • 问题内容: 我有一个返回promise的方法,并且在内部该方法调用一个API,该API每分钟只能有20个请求。问题是我有很多对象(大约300个),并且我想为每个对象调用API。 目前,我有以下代码: 但是它不处理时序约束。我希望我可以使用_.chunk和_.debounce之类的东西,但是我无法解决这个问题。有人可以帮我吗? 问题答案: 您可以每分钟发送1个包含20个请求的块,或者每3秒将其间隔1