I understand that every messaging platform (rabbitmq, activemq) provides some mechanism that guarantees message delivery between the server (rabbitmq) and the consumers, so if a consumer is down, the message will still be in a queue and redelivered. But what happens in case the messaging platform is down and the client (producer of the message) could not deliver the message to the platform (Rabbitmq)? In that case, a retry method to redeliver the message is needed, but I'm not sure if I have to implement it myself, or clients libraries have this option , is it declared as a parameter in the connection/channel creation? is it platform specific? Also, protocols like AMQP specifies this? I heard also from Spring Retry as a option.
Asked
Active
Viewed 50 times
0
-
Your question is a bit unclear. The title suggests you're asking about messaging "systems" (which I assume means "brokers"), but you're actually asking about clients. – Justin Bertram Oct 07 '18 at 15:41
-
That's right. I'm asking about clients. – mingo Oct 07 '18 at 19:03
-
I recommend you clarify your question - especially the title. – Justin Bertram Oct 07 '18 at 19:11
1 Answers
0
A spring-retry RetryTemplate
can be wired directly into Spring AMQP's RabbitTemplate
.
Kafka has retry capability built into the Producer (see the retries
property).
For JMS, you can wrap the JmsTemplate
into a RetryTemplate.execute()
method.
The retry policy, back-off etc is all configurable.

Gary Russell
- 166,535
- 14
- 146
- 179