NServiceBus против MassTransit

Я борюсь со списком плюсов и минусов в отношении NServiceBus и MassTransit.

теперь я знаю, что здесь уже есть нить, но она не отвечает на мои вопросы.

вот что я прочитал до сих пор:

  1. NServiceBus, да, он лицензирован, и он не приходит бесплатно.
  2. MassTransit, да, это с открытым исходным кодом, но документация, похоже, несколько отсутствует.

NServiceBus старше и имеет больше ссылки на литературу. Трудно найти материал о широкие, но я не заморачиваюсь. Однако я должен доставить твердое решение, и поэтому я должен спросить.

поэтому, пожалуйста, кто-то с опытом с обоими фреймворками. Почему я должен выбрать NServiceBus? Или Почему я должен выбрать MassTransit?

Это производительность, безопасность, масштабируемость или?

3 ответов


Если бы мне пришлось подвести итог, вот что я бы сказал:

Если вам нужна коммерческая поддержка, перейдите на NServiceBus. Если вам удобно использовать форумы в качестве средства поддержки, MassTransit-отличный вариант. Разработчики были очень отзывчивы к нашим вопросам до сих пор. Если вы выберете MassTransit, теперь вы будете выбирать между MSMQ и RabbitMQ. Если вам нужно DTC пойти с MSMQ. Если вы хотите больше возможностей и лучшего администрирования, идите с RabbitMQ.

на нашем проекте, мы переключился с NServiceBus на MassTransit по двум причинам:

  1. MassTransit бесплатно
  2. мы любим RabbitMQ

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

стоимость:

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

поддержка:

  • Как упоминалось Udi, есть возможность для коммерческой поддержки NServiceBus, я не видел этого для MassTransit.

транспорт:

  • MassTransit поддерживает MSMQ и RabbitMQ
  • NServiceBus поддерживает только MSMQ RabbitMQ поддерживается в NServiceBus 4+

RabbitMQ vs MSMQ:

  • поддержка MSMQ DTC (распределенная транзакция координатор) для транзакций с участием нескольких процессов на потенциально нескольких компьютерах (например, SQL server, служба Windows)
  • RabbitMQ имеет отличный администрирование интерфейс
  • MSMQ существует дольше и является продуктом Microsoft
  • RabbitMQ новее, с открытым исходным кодом, бесплатно и спонсируется VMWare
  • MSMQ установлен на большинстве машин Windows по умолчанию

Уди Дахан и широкие ребята (Крис Паттерсон, Дрю Селлерс и Трэвис Смит) - все блестящие люди.


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

обновление: теперь есть инструменты мониторинга и отладки, доступные для NServiceBus через Определенная Платформа Обслуживания которые делают построение и запуск систем на основе сообщений намного проще. При полной технической целостности Я считаю, что это сильно наклоняет баланс в пользу NServiceBus. конец Update

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

существует большее сообщество вокруг NServiceBus, так что если вам нужна помощь, есть больше людей, которые могут дать его. Тем не менее, основная группа MassTransit всегда была очень хороша в помощи всем, кто проблемы.

с NServiceBus компании могут приобрести поддержку и получить гарантированное время отклика на свои вопросы - 24x7 по всему миру. Я не верю, что подобное предложение доступно от широкие ребята.

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

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

надеюсь, что это помогает в некотором роде.


вы всегда можете использовать Shuttle (FOSS):https://github.com/Shuttle/shuttle-esb :)

документация (всегда улучшается):http://shuttle.github.io/shuttle-esb/

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

NServiceBus имеет хороший послужной список. Я использовал его ранее в производственной системе (1.9), но не так как он gone commercial (точка, с которой я начал с Shuttle).

Я не пробовал MassTransit.

Я думаю, что все ваши варианты будут иметь основы (command / event / pub-sub). Однако у NServiceBus есть саги и материал шины данных, хотя я считаю, что достаточно легко обрабатывать данные вне самой шины обслуживания, например, в обработчиках сообщений конечной точки. Я не знаю, есть ли у MassTransit sagas / Data bus, но Shuttle, конечно, нет.

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