nServiceBus против Mass Transit против Rhino Service Bus против других?

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

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


person mwjackson    schedule 21.10.2009    source источник


Ответы (4)


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

Вам, вероятно, понадобится какая-то надежная / транзакционная инфраструктура обмена сообщениями, поэтому без использования MSMQ вы останетесь с Service Broker на платформе Microsoft или какой-либо другой альтернативой, такой как ActiveMQ. Преимущество MSMQ в том, что он уже установлен на всех компьютерах Windows, в отличие от Service Broker, которого нет.

С точки зрения выбора между NServiceBus, Mass Transit и Rhino Service Bus - этот ответ Stackoverflow, сравнение NServiceBus с MassTransit, был бы хорошим место для начала ..

В нашем выпуске 3.1 мы представляем NSB Studio - набор интегрированных инструментов моделирования Visual Studio, которые позволяют моделировать вашу систему на более высоком уровне абстракции, и большая часть настройки и инициализации NServiceBus выполняется за вас автоматически. Я бы сказал, что это действительно склоняет чашу весов в пользу NServiceBus.

Надеюсь, это поможет.

Отказ от ответственности: я являюсь автором NServiceBus.

person Udi Dahan    schedule 23.10.2009
comment
Не могли бы вы рассказать, какой вкус вы предпочитаете? Каковы некоторые из наиболее заметных различий между вашим nServiceBus и другими решениями (помимо того, что они являются самыми старыми и стабильными)? - person mwjackson; 26.10.2009
comment
Сервисный автобус Rhino очень ориентирован на замок. Если вы не знакомы / не знакомы с Castle как с основной частью архитектуры вашего приложения, у вас могут возникнуть трудности с ним. NServiceBus и Mass Transit или более контейнерный агностик. NServiceBus поставляется с сервером приложений, который обрабатывает ваш код, а также изменяет реализации активной инфраструктуры (например, в памяти, MSMQ и DB) при переходе вашей системы от разработчика к тесту к продукту. Он также поставляется с возможностями модульного тестирования для вашей логики обработки сообщений и длительных процессов. Я не верю, что у MassTransit они есть. - person Udi Dahan; 28.10.2009
comment
Вероятно, стоит отметить, что Уди является АВТОРОМ NServiceBus, и поэтому его мнение здесь может быть немного предвзятым. :) Сказав это, я полностью согласен и буду защищать использование NServiceBus по тем же причинам, что и он. - person skb; 25.04.2010
comment
@skb: согласен! Уди, тебе действительно стоит дать какой-то отказ от ответственности при ответах на вопросы nservicebus, особенно на такие, как этот! - person andy; 10.11.2010
comment
Я все еще привыкаю к ​​тому, что NServiceBus сейчас открывают для себя люди, которые не знают, что я его создал. - person Udi Dahan; 10.11.2010
comment
@Alex: Люди должны есть, и тот факт, что они берут плату за лицензию, не делает ответ менее достоверным. Тем не менее, это довольно дорого, поэтому я, скорее всего, выберу альтернативу с открытым исходным кодом (если вы публикуете исходный код без лицензии на свободное использование этого исходного кода, он также может быть с закрытым исходным кодом). - person Eric J.; 10.05.2012
comment
@UdiDahan: Как у nServiceBus открыт исходный код? Публикация исходного кода без лицензии на его использование ничего не делает для духа открытого исходного кода, которым мы делимся. Я полностью поддерживаю ваше право зарабатывать на жизнь продажей программного обеспечения (я делаю то же самое), но я думаю, что было бы намного точнее, если бы вы не рекламировали решение (пост 2.0) как открытый исходный код. - person Eric J.; 10.05.2012
comment
@EricJ. Если я не ошибаюсь, NServiceBus имеет общедоступную лицензию при условии, что вы также поделитесь своим исходным кодом) Reciprocal Public License 1.5 (RPL1.5) для использования с открытым исходным кодом. как говорится на сайте). - person Carles Company; 26.06.2012
comment
Хотя, возможно, это правда на момент написания, предложения Microsoft значительно продвинулись вперед. WCF теперь поддерживает WS- * и поддержку рабочих процессов Windows Server AppFabric. Может быть, не на таком уровне сложности, как продукты других поставщиков - коммерческих или иных, но все же может использоваться в качестве основы для самостоятельной системы. - person MickyD; 18.02.2013

NServiceBus - хороший продукт, но остерегайтесь проблем с лицензированием. Он имеет тенденцию изменять свою лицензионную политику по желанию авторов. Взгляните, например, на информацию о старой лицензии.

Может случиться так, что в середине разработки проекта вы обнаружите, что вам нужно заплатить большие деньги за NServiceBus.

Также у бесплатной версии есть ограничения по производительности.

MassTransit - это абсолютно бесплатный проект с открытым исходным кодом, он не имеет ограничений и находится под лицензией Apache 2.0.

Я не использовал служебную шину Rhino.

person Alex Burtsev    schedule 11.04.2012
comment
Фактически мы предоставим новую лицензию с версией 3.1, которая позволит вам запускать ее на нескольких машинах бесплатно (хотя и с более низким уровнем пропускной способности). - person Udi Dahan; 11.05.2012
comment
MassTransit - ваш мужчина. Это бесплатно; нет лицензионных ограничений. Если вы можете обойтись без дизайнера потока и можете самостоятельно катить вручную, вы не сможете победить его. Он также может располагаться поверх RabbitMQ, а в MSMQ есть плагины сообщества для Azure. MassTranit + RabbitMQ зарекомендовал себя как отличная стабильная среда и очень быстро позволяет вам наладить работу ваших потребителей / производителей. - person Bigtoe; 07.09.2012
comment
Также рассмотрите EasyNetQ (простая оболочка для rabbitMQ). Удивленный UDI не слишком важен для обсуждения с предложениями 4 хороших альтернативы 2 nServiceBus? Что я имею в виду. помочь людям в обмене сообщениями на ранних этапах. Есть много хороших простых (бесплатных) способов 2 начать работу; на самом деле не имеет значения, что вы используете, если это просто и в идеале бесплатно; (бесплатно играть и бесплатно реализовывать по-настоящему, а также можно бесплатно изменять позже). Когда вы вырастете, вы разработаете собственный список проблем; в этот момент более зрелые продукты станут легким решением, с легким расчетом стоимости, например nservicebus. - person snowcode; 13.10.2015
comment
Начиная с MassTransit 4.0 MSMQ больше не поддерживается (masstransit-project.com/MassTransit) - person MyGGaN; 26.01.2018

Обновление состояния Rhino vs NServicebus:

http://www.infoq.com/news/2012/04/nservicebus3-0

InfoQ to Ayende: Ранее вы сами написали служебную шину для .NET, а именно служебную шину Rhino. Следует ли пользователям Rhino Service Bus пересмотреть решение и перейти на NServiceBus?

Айенде: Я построил Rhino Service Bus примерно в 2008 году. Я построил его в основном потому, что меня не устраивало состояние других служебных автобусов в то время. При создании служебного автобуса у меня были разные заботы и разные направления, но это было 4 года назад. За это время я думаю, что NServiceBus добился больших успехов в том, чтобы стать более простым в использовании продуктом и иметь гораздо лучшую историю разработки «из коробки». Если бы я сегодня начинал со служебных автобусов, я сильно сомневаюсь, что построил бы свой собственный.

person Ciprian Teiosanu    schedule 21.08.2012

Потенциальным недостатком чего-либо, основанного на MSMQ, является ограничение максимального размера сообщения. IIRC это примерно 4 МБ, с которыми вы можете легко столкнуться, если имеете дело с большими файлами и храните содержимое файла в сообщении.

person quick_dry    schedule 23.10.2009
comment
Интересно, что большинство облачных очередей даже не поддерживают полезные нагрузки размером 100 КБ, так что это то, что нужно будет учитывать во многих приложениях в будущем. - person Udi Dahan; 23.10.2009
comment
В шаблонах корпоративной интеграции (Woolf, Hohpe) шаблон проверки претензий специально решает эту проблему. Ссылка на большую полезную нагрузку сохраняется только в сообщении, сохраняя сообщение маленьким. Сообщения большого размера могут сильно снизить пропускную способность системы обмена сообщениями. - person Chris Patterson; 26.10.2009
comment
Это не проблема с NServiceBus, поскольку у них есть концепция шины данных, которая прозрачно работает в обход ограничений размера. - person Khalid Abuhakmeh; 29.05.2012