У меня есть потребность в отказоустойчивой настройке MSMQ на VMWare ESX5. Я знаю, что мы не можем разрешить совместное использование хранилища очереди, поскольку оно должно быть установлено на монтирование физического диска, например это не может быть общий ресурс CIFS или DFS. Применяются следующие ограничения: Мы не используем кластеризацию Windows. Мы не полагаемся на горячие резервы.
Есть ли способ реплицировать хранилище очередей на другую платформу, чтобы она могла взять на себя обязанности MSMQ в случае отказа основных платформ с использованием любого метода, включая переадресацию очереди?
Я слышал о людях, использующих блочное копирование диска, на котором размещена папка хранилища MSMQ, в другое место.
Если вы реплицируете хранилище в другое место, то конечный компьютер должен иметь то же имя компьютера, чтобы иметь возможность загружать сообщения.
Обратите внимание, что MSMQ может потребоваться обновить несколько файлов для обработки сообщений, поэтому всегда существует сценарий, при котором копия не полностью синхронизируется с оригиналом в случае сбоя.
Если вы не хотите инвестировать в аппаратные решения, вы можете разработать приложение, которое будет устойчивым. Например, отправляя сообщения нескольким адресатам, но обрабатывая только одно сообщение, или перехватывая обработку дубликатов.