跳到主要内容

延迟重新投递

为了给应用程序时间从暂时无法处理消息的状态中恢复,此功能允许在本地事务中消费保证消息的客户端延迟重新投递消息。延迟重新投递由计时器控制,并由客户端发起的事务回滚触发。在重新投递计时器运行期间,如果消费者流参与了回滚的事务,则该流会被阻塞,消息传递到应用程序的操作将被暂停,直到计时器到期。即使事件代理处于一种在消息重新开始流动后不会发生消息重新投递的状态(例如,事件代理上禁用了消息重新投递,或者消息已在事件代理上过期),在客户端发起的事务回滚之后,消息传递仍将被暂停。通过使用乘数,可以实现重新投递尝试的指数退避。

延迟重新投递仅支持在 PubSub+ JCSMP API 和 PubSub+ JMS API 中使用。它不支持在 C、.NET、Java RTO、JavaScript、Node.js、Python 或 Go 的 PubSub+ 消息 API 中使用。

延迟重新投递是一个受控可用性(Controlled Availability, CA)功能。请与 Solace 联系,以了解此功能是否支持您的使用场景。

整个延迟重新投递的配置是在 PubSub+ 事件代理上完成的,并在绑定请求到队列或主题端点时传递给消费者流。只有在没有客户端连接到队列且队列的连接被禁用时,才能更新 PubSub+ 事件代理端的配置。换句话说,您无法通过 API 更改、覆盖或查看配置。

有关在事件代理上配置延迟重新投递的更多信息,请参阅“为队列配置消息重新投递延迟”或“为主题端点配置消息重新投递延迟”。