如何解决对于Azure Servicebus jms spring引导启动程序,是否存在属性设置以在处理失败时重新排队消息?
我正在使用azure-servicebus-jms-spring-boot-starter来侦听来自Microsoft Azure队列的消息。 Azure Service Bus api具有一个PEEKLOCK设置 azure.servicebus.subscription-receive-mode = PEEKLOCK ,在处理消息失败的情况下,该消息会重新排队。 spring JMS侦听器是否有类似的设置?
解决方法
您可以指定Service Bus接收消息的两种不同模式:ReceiveAndDelete
或PeekLock
。
在PeekLock
模式下,接收操作变为两阶段,这使得可以支持不能容忍丢失消息的应用程序。
当服务总线收到请求时,它找到要使用的下一条消息,将其锁定以防止其他使用者接收它,然后将其返回给应用程序。在应用程序完成处理后,消息(或可靠地存储它以供将来处理),它通过对收到的消息调用CompleteAsync来完成接收过程的第二阶段。当Service Bus看到CompleteAsync调用时,它将消息标记为已使用。
有关更多详细信息,您可以参考此article。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。