требования клиента для системы обмена сообщениями (а-ля MassTransit) с использованием MSMQ? - PullRequest
4 голосов
/ 27 января 2010

Не использовав MSMQ раньше, я не совсем понимаю требования к клиентской среде для его использования.

Я разрабатываю клиент-серверное решение, которое будет интегрировано с устаревшей системой, и я продан за обмен сообщениями. Я хотел бы использовать реализацию служебной шины, такую ​​как MassTransit, но для этого требуется MSMQ.

Нужно ли следить за тем, чтобы на каждом клиентском ПК был установлен MSMQ?

Я не думаю, что мои перспективы продать это хранителям Пароль администратора очень хороши.

Прямо сейчас я могу с уверенностью ожидать, что на каждом клиентском компьютере будет установлена ​​Windows XP Professional, но это может измениться, и я понимаю, что MSMQ не устанавливается по умолчанию в более поздних ОС, что может быть еще большей головной болью.

Может кто-нибудь объяснить мне, как это работает? Я не могу себе представить, как любое коммерческое программное обеспечение может полагаться на MSMQ, если я не пропускаю что-то существенное (я надеюсь, что я есть).

(Сервер не проблема - у меня там полный контроль.)

Ответы [ 3 ]

5 голосов
/ 29 января 2010

ESB (или даже облегченный вариант, такой как MassTransit или NServiceBus) действительно не предназначен для взаимодействия клиент / сервер. Если у вас есть приложение для толстого клиента, которое должно взаимодействовать с внутренними службами, может быть более разумно создать уровень SOAP и / или REST, с которым клиенты взаимодействуют. За этим сервисным уровнем вы можете использовать обмен сообщениями внутри, в зависимости от ваших требований к масштабированию. Обмен сообщениями очень полезен для работы с высокодинамичными нагрузками наряду с другими технологиями, такими как кэширование.

Если вы хотите отправлять сообщения на клиенте, вы можете рассмотреть возможность использования системы обмена сообщениями в стиле брокера (здесь подходит ActiveMQ, это обычное соединение TCP / IP) и подключиться к нему с клиента. Это способ сделать это, не обязательно лучший способ в зависимости от вашей ситуации. MassTransit может использовать ActiveMQ, что позволяет вам абстрагировать API программирования MSMQ / ActiveMQ в более универсальный транспортный интерфейс.

Существует много вариантов проектирования распределенных систем, независимо от того, нужна ли вам связь клиента с клиентом, а связь клиента с сервером действительно может помочь дифференцировать различные варианты технологии.

2 голосов
/ 28 января 2010

Чтобы ответить на ваш основной вопрос. Да. На каждом ПК должна быть запущена служба MSMQ. Я не думаю, что MSMQ предназначен для обычного пользовательского программного обеспечения, но для корпоративного ... межсерверного взаимодействия. Я, конечно, могу ошибаться, но с ограничением, о котором вы спрашиваете, я также не понимаю, как его можно использовать для коммерческого программного обеспечения.

0 голосов
/ 25 апреля 2014

По моему опыту ответ таков: при использовании masstransit используйте rabbitmq, а не msmq cf Masstransit: Может ли он использовать центральный сервер msmq? (Или я должен начать с RabbitMQ с самого начала?)

...