消息系统的可靠性

时间:2018-10-06 11:57:09

标签: rabbitmq jms activemq amqp spring-jms

我了解每个消息传递平台(rabbitmq,activemq)都提供某种机制来保证服务器(rabbitmq)和使用者之间的消息传递,因此,如果使用者关闭,消息仍将处于队列中并重新传递。但是,如果消息传递平台关闭并且客户端(消息的生成者)无法将消息传递到平台(Rabbitmq),会发生什么?在那种情况下,需要一种重试方法来重新传递消息,但是我不确定是否必须自己实现,或者客户端库具有此选项,它是否在连接/通道创建中声明为参数?是平台特定的吗?另外,像AMQP这样的协议会指定此内容吗?我也从Spring Retry听到了一个选择。

1 个答案:

答案 0 :(得分:0)

spring-retry RetryTemplate可以直接连接到Spring AMQP的RabbitTemplate

Kafka在Producer中具有重试功能(请参见retries属性)。

对于JMS,您可以将JmsTemplate包装到RetryTemplate.execute()方法中。

重试策略,退避等都是可配置的。