Подтвердить что ты не робот

Многоадресная передача, обмен сообщениями, ActiveMQ и MSMQ?

Я работаю над системой обмена сообщениями/уведомлениями для наших продуктов. Основные требования:

  • Огонь и забыть
  • Постоянный набор сообщений, возможно, обновление, чтобы оставаться там до тех пор, пока отправитель не попросит их удалить.

Библиотеки будут записаны на С#. Spring.NET только что выпустил веху-сборку с большим количеством приятной абстракции сообщений, что здорово - я планирую ее широко использовать. Мой основной вопрос сводится к вопросу о брокерах сообщений. Моя архитектура будет выглядеть примерно так: app → Message broker queue → server app, которая прослушивает, отправляет все сообщения туда, где им нужно идти, и обрабатывает жизненный цикл этих долгоживущих сообщений → очередь брокера сообщений или тема → прослушивание приложения.

Наконец, вопрос: какой брокер сообщений я должен использовать? Я склонен к ActiveMQ - Мы использовали его в нашем последнем проекте и любили его. Я не могу думать об одном ударе по нему, кроме того, что это Java, и потребует, чтобы Java был установлен на сервере где-то, и это может быть трудно продать некоторым людям, которые будут использовать эту услугу. Другой вариант, который я рассматривал, - это MSMQ. Я предвзято отношусь к нему по какой-то неизвестной причине, и у него также нет большой поддержки многоадресной рассылки.

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

Последнее, мы используем .NET 2.0.

4b9b3361

Ответ 1

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

Некоторые дополнительные преимущества ActiveMQ включают

Основной недостаток, который вы упомянули, заключается в том, что брокер ActiveMQ написан на Java; но вы можете запустить его на IKVM как сборке .net, если вы действительно хотите - или запустить его как службу Windows, или скомпилировать его в DLL/EXE через GCJ. MSMQ может быть или не быть написан в .NET - но на самом деле не имеет большого значения, как это реализовано правильно?

Независимо от того, выбираете ли вы MSMQ или ActiveMQ, я бы рекомендовал хотя бы рассмотреть использование StompConnect.

Таким образом, выбрав NMS в качестве вашего API, вы избежите блокировки любой проприетарной технологии - и тогда вы сможете легко переключать поставщиков сообщений в любой момент времени; вместо того, чтобы полностью блокировать ваш код в проприетарном API

Ответ 2

Плюсы для MSMQ.

  • Он встроен в Windows
  • Он поддерживает транзакции, он также поддерживает очереди без транзакций
  • Очень легко настроить
  • Интеграция AD
  • Это быстро, но вам нужно сравнить ActiveMQ и MSMQ, чтобы ваш трафик знал, что быстрее.
  • .NET поддерживает его nativity
  • Поддерживает огонь и забывает
  • Вы можете заглянуть в очередь, если у вас есть читатели, которые просто смотрят. не уверен, что вы можете редактировать сообщение в очереди.

Минусы:

  • ограничение размера сообщения 4 МБ
  • Ограничение на размер очереди 2 ГБ
  • Элементы очереди хранятся на диске
  • Не являющийся основным продуктом MS, документы - это немного некорректно, или прошло несколько лет с тех пор, как я использовал его.

Вот хороший блог для MSMQ

Ответ 3

Посмотрите zeromq. Это одна из самых быстрых очередей сообщений.

Ответ 4

Я предлагаю вам взглянуть на TIBCO Enterprise Messaging Service - EMS, который представляет собой высокопроизводительный продукт обмена сообщениями, который поддерживает многоадресную рассылку, маршрутизацию, поддерживает спецификацию JMS и предоставляет широкие возможности предприятия, включая ваши требования, такие как перезапуск и постоянство сообщений с использованием файла /database с использованием общего состояния.

Как ссылка, FEDEX работает на TIBCO EMS как его инфраструктуру обмена сообщениями.

http://www.tibco.com/software/messaging/enterprise_messaging_service/default.jsp

Есть много других ссылок, если я предоставляю, вы действительно будете удивлены.

Ответ 5

На этой арене так много вариантов...

Бесплатно: MantaRay сверстник полностью совместим с системой JMS. Интересная часть Mantaray заключается в том, что вам нужно всего лишь определить, куда идет сообщение, и MantaRay направляет его так или иначе, чтобы получить ваше сообщение для его деления - поэтому он более устойчив к сбоям отдельных узлов в вашей почтовой сети.

Paid: На моей дневной работе я администрирую систему обмена сообщениями IBM WebSphere MQ с несколькими сотнями узлов и нашел, что это очень хорошо. Мы также недавно купили Tibco EMS, и, похоже, будет неплохо также использовать его.

Paul/