NServiceBus vs MassTransit
Я борюсь со списком плюсов и минусов в отношении NServiceBus и MassTransit.
теперь я знаю, что здесь уже есть нить, но она действительно не отвечает на мои вопросы.
вот что я читал до сих пор:
- NServiceBus, да, он лицензирован, и он не поставляется бесплатно.
- MassTransit, да это с открытым исходным кодом, но документация, кажется, не хватает несколько.
NServiceBus старше, и имеет больше ссылки на литературу. Трудно найти материал о широкие, но я не заморачиваюсь. Однако я должен доставить твердое решение, и поэтому я должен спросить.
поэтому, пожалуйста, кто-то с опытом с обоими фреймворками. Почему я должен выбрать NServiceBus? Или Почему я должен выбрать MassTransit?
Это производительность, безопасность, масштабируемость или?
3 ответов:
Если бы мне пришлось подвести итог, вот что я бы сказал:
Если вам нужна коммерческая поддержка, перейдите на NServiceBus. Если вам удобно использовать форумы в качестве средства поддержки, MassTransit-отличный вариант. Разработчики были очень отзывчивы к нашим проблемам до сих пор. Если вы выберете MassTransit, теперь вы будете выбирать между MSMQ и RabbitMQ. Если вам нужен DTC, то пойдите с MSMQ. Если вы хотите больше возможностей и лучшего администрирования, пойдите с RabbitMQ.
на нашем проекте, мы переключился с NServiceBus на MassTransit по двум причинам:
- в MassTransit бесплатно
- мы любим RabbitMQ
Я использовал обе рамки. Я использовал MassTransit дольше, чем NServiceBus. Вот основные моменты, как я их вижу.
стоимость:
- MassTransit-это Apache 2.0, лицензированный и бесплатный для коммерческого использования, в то время как NServiceBus не.
поддержка:
- как упоминал Udi, есть вариант для коммерческой поддержки NServiceBus, я не видел этого для MassTransit.
транспорт:
- MassTransit поддерживает MSMQ и RabbitMQ
NServiceBus поддерживает только MSMQRabbitMQ поддерживается в NServiceBus 4+RabbitMQ vs MSMQ:
- поддержка MSMQ DTC (распределенная транзакция координатор) для транзакций с участием нескольких процессов на потенциально нескольких машинах (например, SQL server, служба Windows)
- RabbitMQ имеет отличный администрирование интерфейс
- MSMQ был вокруг дольше и является продуктом Microsoft
- RabbitMQ является более новым, открытым исходным кодом, бесплатным и спонсируется VMWare
- MSMQ установлен на большинстве машин Windows по умолчанию
Уди Дахан и широкие ребята (Крис Паттерсон, Дрю Селлерс и Трэвис Смит) все блестящие люди.
как оригинальный автор NServiceBus, я явно предвзято отношусь к своей собственной технологии, поэтому я постараюсь сохранить это как можно более сбалансированным.
обновление: теперь есть инструменты мониторинга и отладки, доступные для NServiceBus через Определенная Платформа Обслуживания которые делают создание и запуск систем на основе сообщений намного проще. При полной технической целостности Я считаю, что это сильно склоняет баланс в пользу NServiceBus. конец Обновление
хотя в первые дни я отслеживал большую часть развития MassTransit, у меня не было много времени, чтобы сделать это в последнее время, поэтому я предположу, что обе технологии одинаково хороши сами по себе и вместо этого сосредоточены на экосистеме.
существует более широкое сообщество вокруг NServiceBus, так что если вам нужна помощь, есть больше людей, которые могут дать его. Тем не менее, основная группа MassTransit всегда была очень хороша в оказании помощи всем, кто имеет проблемы.
с NServiceBus, компании могут приобрести поддержку и получить гарантированное время отклика на свои вопросы - 24x7, по всему миру. Я не верю, что подобное предложение доступно от широкие ребята.
с точки зрения офлайн, есть публичные курсы, доступные по всему миру на NServiceBus, а также многие консультанты, которые могут быть привлечены на месте, чтобы начать проект или помочь в случае возникновения проблем. Я слышал от нескольких компаний, которые решили чтобы переключиться с MassTransit на NServiceBus, потому что они не могли получить кого-то на месте, когда им это было нужно.
Я бы сказал, что модели лицензирования вокруг NServiceBus достаточно гибки, чтобы удовлетворить любой бюджет, как показывает широкий спектр клиентов, и могут быть хорошо обоснованы для управления. Конечно, с MassTransit, лицензирование является бесплатным.
надеюсь, что это помогает в некотором роде.
вы всегда можете использовать Shuttle (FOSS):https://github.com/Shuttle/shuttle-esb :)
документация (всегда улучшается):http://shuttle.github.io/shuttle-esb/
проект шаттла идет почти 2 лет и используемые производственные системы. Это будет вопрос выбора того, что резонирует с вами.
NServiceBus имеет хороший послужной список. Я использовал его ранее в производственной системе (1.9), но не так как он пошел коммерческий (точка, в которой я начал с шаттла).
Я не пробовал в MassTransit.
Я думаю, что все ваши варианты будут иметь основы (command / event / pub-sub). Однако у NServiceBus есть sagas и материал шины данных, хотя я считаю, что достаточно легко обрабатывать данные за пределами самой служебной шины, например, в обработчиках сообщений конечной точки. Я не знаю, есть ли у MassTransit sagas / Data bus, но Shuttle, конечно, нет.
другой рассмотрение, вероятно, как вы собираетесь использовать служебную шину. Если он должен быть частью продукта, то для коммерческого варианта, такого как NServiceBus, вам нужно будет рассмотреть финансовые последствия для пользователей вашего продукта, и хотя это все еще то, что нужно учитывать для внутренней разработки, это, безусловно, может быть оправдано.
Comments