Сокеты надежны, так как все коммуникации выполняются поверх них, включая MQ.
Но вы можете добавить гарантированную доставку с MQ, чтобы повысить надежность вашего приложения. Что это? Гарантированная доставка гарантирует, что ваше сообщение будет обработано потребителем как минимум один раз и не более одного раза.
потребитель выключен? продюсер выключен? сервер MQ выключен? диск падает? Благодаря MQ ни одно сообщение не будет потеряно, что бы ни случилось (при условии, что ваш админ знает свою работу).
В дополнение к этому, если вы перезапустите потребителя, никакое сообщение не будет обработано дважды. Что может быть важно, если сообщения содержат переводы миллионов долларов.
Но это не гарантирует, что ваше сообщение будет обработано в разумные сроки. а время обработки иногда важнее гарантированной доставки, в зависимости от вашего приложения.
Это зависит от вас, чтобы выбрать лучший способ связи между вашими серверами в зависимости от ваших потребностей. Гарантированная доставка доставляет как финансовые, так и эксплуатационные расходы, поэтому ее следует использовать только в том случае, если она действительно необходима (например, переводы в миллионы долларов).
Для большинства приложений вы можете достичь чего-то удовлетворяющего, только повторяя ваши сообщения, когда затем происходит сбой. Но это не настоящая разовая гарантированная доставка. не пытайтесь реализовать это самостоятельно, это очень сложный процесс, которого могут достичь лишь немногие. Полезно подумать о том, чтобы заново разработать программное обеспечение, такое сложное, как MQ или Apache AQ.
Надеюсь, это поможет.