Socket is reliable because every message runs on top of it, including MQ.
But you can add some guaranteed delivery with MQ to increase the reliability of your application. What is it? guaranteed delivery ensures that your message is processed at least once and not more than once by the consumer. Is the consumer disconnected? Is the producer disabled? Is the MQ server turned off? does the disk fall? thanks to MQ, no message will be lost, no matter what happens (provided that your administrator knows his work). In addition to this, if you reload the user, not a single message will be processed twice. This can be important if messages contain millions of dollars in transfers. But this does not guarantee that your message has been processed for a considerable time. and processing time is more important than guaranteed delivery, depending on your application.
It is up to you to choose the best way to communicate between servers depending on your needs. Guaranteed delivery delivery has both financial and operational costs, so it should be used only if necessary (for example, transfers in millions of dollars).
For most applications, you can achieve something that satisfies only by repeating your messages, and then crashing. But this is not a real guaranteed delivery only once and for all. do not try to implement it yourself, this is very difficult material, which only a few can achieve. It is recommended that you consider reprogramming software as complex as MQ or Apache AQ.
Hope this helps.
jeb
source share