Я борюсь с списком плюсов и минусов относительно NServiceBus и MassTransit.
Теперь я знаю, что здесь есть поток, но на самом деле он не отвечает на мои вопросы.
Вот что я читал до сих пор:
- NServiceBus, да, он лицензирован, и он не приходит бесплатно.
- MassTransit, да, это с открытым исходным кодом, но документации, похоже, не хватает.
NServiceBus старше и имеет больше ссылок. Трудно найти материал о MassTransit, но я открыт. Однако я должен предоставить твердое решение, и поэтому я должен спросить.
Так что, пожалуйста, кто-то с опытом работы с обоими фреймворками. Почему я должен выбирать NServiceBus? ИЛИ Почему я должен выбрать MassTransit?
Это производительность, безопасность, масштаб или?
Ответ 1
Если бы мне пришлось обобщить, вот что я сказал бы:
Если вам нужна коммерческая поддержка, перейдите на NServiceBus. Если вам удобно использовать форумы в качестве средства поддержки, MassTransit - отличный вариант. На данный момент разработчики очень чутко реагируют на наши проблемы. Если вы выберете MassTransit, теперь вы будете выбирать между MSMQ и RabbitMQ. Если вам нужен код DTC, перейдите в MSMQ. Если вы хотите больше возможностей и улучшите администрирование, перейдите к RabbitMQ.
В нашем проекте мы переключились с NServiceBus на MassTransit по двум причинам:
- MassTransit является бесплатным.
- Мы любим RabbitMQ
Я использовал оба фреймворка. Я использовал MassTransit дольше, чем NServiceBus. Вот основные моменты, которые я вижу.
Стоимость:
- MassTransit - это Apache 2.0, лицензированный и бесплатный для коммерческого использования, в то время как NServiceBus - нет.
Поддержка:
- Как сказал Уди, есть возможность для поддержки коммерческих NServiceBus, я не видел этого для MassTransit.
Транспорт:
- MassTransit поддерживает MSMQ и RabbitMQ
-
NServiceBus поддерживает только MSMQ RabbitMQ поддерживается в NServiceBus 4 +
RabbitMQ против MSMQ:
- Поддержка MSMQ DTC (координатор распределенной транзакции) для транзакций с несколькими процессами на потенциально нескольких компьютерах (например, SQL-сервер, служба Windows)
- RabbitMQ имеет отличный интерфейс администрирования
- MSMQ работает дольше и является продуктом Microsoft.
- RabbitMQ является новым, открытым исходным кодом, бесплатным и спонсируется VMWare.
- MSMQ устанавливается на большинстве машин Windows по умолчанию.
Уди Дахан и ребята из MassTransit (Chris Patterson, Dru Sellers и Travis Smith) - все блестящие люди.
Ответ 2
Как оригинальный автор NServiceBus, я явно склонен к своей собственной технологии, поэтому я постараюсь сделать это как можно более сбалансированным.
Обновление: теперь доступны инструменты мониторинга и отладки для NServiceBus через Частная платформа обслуживания, которые значительно упрощают создание и работу систем на основе сообщений, С полной технической целостностью, я считаю, что это сильно подсказывает баланс в пользу NServiceBus. End Update
В то время как в первые дни я действительно отслеживал большую часть развития MassTransit, у меня не было много времени, чтобы сделать это в последнее время, поэтому я буду считать, что обе технологии одинаково хороши сами по себе и сосредоточены на экосистеме.
В NServiceBus есть более обширное сообщество, поэтому, если вам нужна помощь, есть больше людей, которые могут это дать. Тем не менее, основная группа MassTransit всегда оказывала огромное влияние на тех, у кого есть проблемы.
С NServiceBus компании могут приобрести поддержку и получить гарантированное время отклика на свои проблемы - 24x7 по всему миру. Я не считаю, что подобное предложение доступно от реселлеров MassTransit.
В оффлайновой перспективе на NServiceBus доступны общедоступные курсы, а также многие консультанты, которые могут быть привлечены на месте для запуска проекта или оказания помощи в случае возникновения проблем. Я слышал от нескольких компаний, которые решили переключиться с MassTransit на NServiceBus, потому что они не могли получить кого-то на месте, когда им это было нужно.
Я бы сказал, что модели лицензирования вокруг NServiceBus достаточно гибкие, чтобы удовлетворить любой бюджет, как указывает широкий спектр клиентов, и может быть вполне оправдан для руководства. Конечно, с MassTransit лицензирование бесплатное.
Надеюсь, что это поможет в некотором роде.
Ответ 3
Вы всегда можете использовать Shuttle (FOSS): https://github.com/Shuttle/shuttle-esb:)
Документация (всегда улучшается): http://shuttle.github.io/shuttle-esb/
Проект Shuttle длится почти 2 года и используется в производственных системах. Это будет вопрос выбора того, что резонирует с вами.
NServiceBus имеет хорошую репутацию. Я использовал его ранее в производственной системе (1.9), но не с тех пор, как он стал коммерческим (точка, с которой я начал с Shuttle).
Я не пробовал MassTransit.
Я думаю, что все ваши варианты будут иметь основы (command/event/pub-sub). Однако NServiceBus имеет саги и данные шины данных, хотя я считаю, что достаточно легко обрабатывать данные вне самой служебной шины, например, в обработчиках сообщений о конечных точках. Я не знаю, имеет ли MassTransit саги/шину данных, но Shuttle, конечно же, этого не делает.
Еще одно соображение - это, вероятно, то, как вы собираетесь использовать служебную шину. Если он должен быть частью продукта, то для коммерческого варианта, такого как NServiceBus, вам нужно будет учитывать последствия затрат для пользователей вашего продукта, и хотя это все равно что-то, что необходимо учитывать для внутреннего развития, это, безусловно, может быть оправданными.