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

与Spring AMQP确认交付

曹茂材
2023-03-14

我们正在使用SpringAMQP,其风格与使用AMQP的SpringRemoting相同。我在每封邮件上设置x-message-ttl,以便在无法立即发送给消费者时立即过期。这非常有效,但是,它让生产者等待指定的replyTimeout值,然后使用RemoteProxyFailureException失败(如果我没有记错的话)。如果消息无法传递(只有在消息实际接收时才等待超时),是否有任何方法可以使生产者立即失败?

共有1个答案

萧献
2023-03-14

体系结构的松散耦合意味着生产商没有到期的迹象。

过去有一个立即标志,但在Rabbitmq 3.0中被删除了。

一个可能的解决方案是配置一个DLX/DLQ,这样过期的消息可以被另一个消费者使用,这可以向客户端返回异常。

编辑:

只需让回退使用者实现相同的接口,并让它抛出异常即可。

请参阅此更新的测试用例。

 类似资料:
  • 一、 我与CachingConnectionFactory有一个SpringAMQP项目。我需要从AMQP连接获取一些属性,例如:状态、连接时间、通道和一些运行时度量。CachingConnectionFactory是否有任何指标支持(例如:https://www.rabbitmq.com/blog/2016/11/30/metrics-support-in-rabbitmq-java-clien

  • Tangle 初始状态 与区块链技术不同,IOTA 并不是一条有着时间序列概念,每个区块前后相连的链,链中的每个块包含一些交易。在 IOTA 中,每笔交易都可以其他交易连接(所谓连接,就是验证其他交易),并且可并行发生。下面的内容将就如何在 IOTA 中加入交易,验证交易及其共识机制展开。 上图是 tangle 的一个案例,下面内容都会围绕该图展开。绿色交易代表已经被网络以高确定性(high ce

  • 问题内容: 对于带有警报的简单表单,询问是否正确填写了字段,我需要执行以下操作的函数: 单击带有两个选项的按钮时显示警报框: 如果单击“确定”,则提交表单 如果单击“取消”,则警告框关闭,可以调整并重新提交表单 我认为JavaScript确认会起作用,但我似乎无法弄清楚该怎么做。 我现在拥有的代码是: 问题答案: 一个简单的 内联JavaScript确认 就足够了: 除非您正在执行 验证 ,否则不

  • 发布者创建reply_to队列并发布到路由密钥,其中包含一条消息,告诉消费者向队列发送响应(RPC协议),以及一个传回的相关id,以便所有未来的结果都与该唯一标识符相关联 Exchange向绑定到该路由密钥的所有队列发送消息。这里,有两个消费者的两个队列,每个都绑定到路由密钥“泵” 一段时间后,消费者回复回队列,然后确认消息,以便他们的唯一队列删除发送到其队列的消息。每个收到消息的消费者都会这样做

  • 我正在使用ReplyingKafkaTemplate.sendAndReception()发送和接收由相关ID关联的消息。用例有许多主题正在进行中,我需要手动acknoledge(提交)消耗的消息偏移量。到目前为止还不错,这是使用: 但我不知道如何手动确认最后一条消息(sendAndReceive()使用的消息)。 有什么提示吗? 谢谢 费尔南多

  • 我曾尝试用谷歌搜索这个,但没有成功。如果我使用的是,并且我有一个用Java编写的客户机,那么消息何时被确认?我正在使用一个,它包含一个方法。确认信息是在完成之前还是在完成之后或在其他时间点发送回服务器?提前感谢任何人提供的任何帮助!