Резервирование MSMQ - PullRequest
       5

Резервирование MSMQ

2 голосов
/ 31 января 2009

Я смотрю в WCF / MSMQ.

Кто-нибудь знает, как с MSMQ справляться с избыточностью? Насколько я понимаю, очередь находится на сервере, но что, если сервер отключается и не подлежит восстановлению, как можно предотвратить потерю сообщений?

Есть хорошие статьи на эту тему?

Ответы [ 2 ]

6 голосов
/ 31 января 2009

Хорошая статья об использовании MSMQ на предприятии здесь .

Совет 8 - это тот, который вы должны прочитать.

"Используя инструмент Microsoft Windows Clustering, очереди будут переключаться при сбое с одного компьютера на другой, если один из серверов сервера очередей перестанет нормально работать. Процесс восстановления после отказа перемещает очередь и ее содержимое с отказавшего компьютера на компьютер резервного копирования. Кластеризация Microsoft работает , но, по моему опыту, сложно правильно настроить и часто работать со сбоями. Кроме того, для запуска Microsoft Cluster Server необходимо также запустить Windows Server Enterprise Edition - дорогостоящую операционную систему для лицензирования. Вместе эти проблемы требуют поиска замены.

Одной из альтернатив использования Microsoft Cluster Server является использование стороннего решения для балансировки IP-нагрузки, некоторые из которых коммерчески доступны. Эти устройства подключаются к вашей сети, как стандартный сетевой коммутатор, и после настройки IP-сеансы балансировки нагрузки между настроенными устройствами. Для балансировки нагрузки MSMQ вам просто нужно настроить виртуальный IP-адрес на устройстве балансировки нагрузки и настроить его на порт балансировки нагрузки 1801. Чтобы подключиться к очереди MSMQ, отправляющие приложения указывают виртуальный IP-адрес, размещенный с помощью балансировки нагрузки. устройство, которое затем эффективно распределяет нагрузку по настроенным машинам, на которых размещаются принимающие приложения. Это не только увеличивает емкость сообщений, которые вы можете обрабатывать (позволяя просто добавить больше компьютеров в ферму серверов), но также защищает вас от простоев, вызванных отказавшими серверами.

Чтобы использовать аппаратный балансировщик нагрузки, необходимо создать идентичные очереди на каждом из серверов, настроенных для балансировки нагрузки, позволяя балансировщику нагрузки подключить отправляющее приложение к любой из машин в группе. Чтобы добавить дополнительный уровень надежности, вы также можете настроить все принимающие приложения для отслеживания очередей всех других машин в группе, что помогает предотвратить проблемы, когда одна или несколько машин недоступны. Стоимость такого мониторинга очереди на удаленных машинах высока (почти всегда эффективнее читать сообщения из локальной очереди), но дополнительный уровень доступности может стоить стоимости. "

1 голос
/ 31 января 2009

Не быть глупым, но ты вроде ответил на свой вопрос. Если сервер невозможно восстановить, вы не сможете восстановить сообщения.

При этом вам может потребоваться регулярно выполнять резервное копирование папки сообщений. Эта статья TechNet расскажет вам, как это сделать:

http://technet.microsoft.com/en-us/library/cc773213.aspx

Кроме того, он не будет создавать резервные копии экспресс-сообщений, так что об этом вы должны знать.

Если вы предпочитаете, вы можете сохранить фактические сообщения для обработки в базе данных при получении и сделать так, чтобы служба была потребителем в схеме производитель / потребитель.

...