nServiceBus vs Mass Transit vs Rhino Service Bus проти інших?


104

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

Які є плюси та мінуси, які знайшли люди, використовуючи кожен із вищезазначених рамок? Які переваги використання цих проти ручно прокатаної системи MSMQ з прив'язками WCF та / або рішеннями, що не стосуються MSMQ?

Відповіді:


71

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

Ймовірно, ви хочете отримати якусь довговічну / транзакційну інфраструктуру обміну повідомленнями, тому, не використовуючи 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.


25
Службовий автобус носорогів дуже орієнтований на замок. Якщо ви не знайомі / вам комфортні з Castle як основною частиною вашої архітектури додатків, у вас можуть виникнути певні труднощі. NServiceBus та Mass Transit чи більше контейнерних засобів. NServiceBus поставляється з "сервером прикладних програм", який обробляє хостинг вашого коду, а також змінює активні реалізації інфраструктури (наприклад, в пам'яті, MSMQ та DB) під час переходу вашої системи з розробника на тест на додаток. Він також постачається з обладнанням для тестування модулів для вашої логіки обробки повідомлень та тривалих процесів. Я не вірю, що MassTransit має це.
Уді Дахан

35
Напевно, варто відзначити, що Уді є АВТОРОМ NServiceBus, і тому його думка тут може бути трохи упередженою. :) Сказавши це, я повністю погоджуюся і висловлювався б за використання NServiceBus з тих же причин, що і він.
skb

8
@skb: погодився! Уді, ви дійсно повинні дати якусь відмову, відповідаючи на запитання nservicebus, зокрема таких як!
andy

14
Я все ще звикаю до того, що зараз люди відкривають для себе NServiceBus, які не знають, що я його створив
Уді Дахан

5
@UdiDahan: Як nServiceBus є "відкритим кодом"? Опублікування вихідного коду без ліцензії на його використання нічого не робить для духу відкритого коду, яким є спільний доступ. Я повністю підтримую ваше право заробляти на життя програмним забезпеченням (я роблю те саме), але думаю, що було б набагато точніше, якби ви не рекламували рішення (пост 2.0) як відкритий код.
Ерік Дж

52

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

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

Також безкоштовна версія має обмеження на продуктивність.

MassTransit є абсолютно безкоштовним відкритим кодом, він не має обмежень і є ліцензією Apache 2.0.

Я не використовував службову шину Rhino .


1
Насправді ми надамо нову ліцензію з версією 3.1, яка дозволить вам запускати її на декількох машинах безкоштовно (хоча і на нижчих рівнях пропускної здатності).
Уді Дахан

11
MassTransit - це ваш чоловік. Це безкоштовно; немає ліцензійних обмежень. Якщо ви можете обійтися без конструктора потоку і можете власноруч розгорнути, тоді ви не можете його обіграти. Він також може сидіти поверх RabbitMQ, а MSMQ має плагіни спільноти Azure. MassTranit + RabbitMQ зарекомендував себе як відмінне стабільне середовище і дуже швидко дає змогу вашим споживачам / виробникам працювати та працювати.
Bigtoe

3
Також врахуйте EasyNetQ (просту обгортку навколо кроликаMQ). Здивований UDI не важить більше на обговоренні з пропозиціями 4 хороших альтернативи 2 nServiceBus? Що я маю на увазі. допомогти людям у подорожі обміну повідомленнями на ранніх стадіях. Є багато хороших простих (безкоштовних) способів 2 розпочати роботу; насправді не важливо, чим ви користуєтесь, доки це легко і ідеально безкоштовно; (безкоштовно грати і безкоштовно реалізовувати як реально, так і вільно змінювати пізніше) Після того, як ви ростете, ви розробляєте ур власний список проблем; в цей момент більш зрілі продукти будуть легким рішенням, з легкими виправленнями витрат, наприклад, nservicebus.
снігопад

За стану не MassTransit 4.0 MSMQ більше не підтримується ( masstransit-project.com/MassTransit )
MyGGaN

25

Оновлення стану Rhino vs NServicebus:

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

InfoQ Ayende: Ви раніше самостійно написали службову шину для .NET, а саме службову шину Rhino. Чи повинні користувачі служби Rhino Service Bus переглядати та переходити до NServiceBus?

Ayende: Я побудував Rhino Service Bus близько 2008 року. Я будував його здебільшого, тому що я не був задоволений станом інших службових автобусів на той час. У мене були різні проблеми та напрямки, коли я будував свій службовий автобус, але це було 4 роки тому. У той час я вважаю, що NServiceBus досягла великих успіхів у тому, щоб стати простішим у використанні продуктом і набагато кращим з історії розробки коробки. Якби я сьогодні починав службові автобуси, я сильно сумніваюся, що будував би свій власний.


9

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


7
Цікаво, що більшість хмарних черг навіть не підтримують корисні навантаження в 100 КБ, тому це багато чого, що потрібно буде враховувати у багатьох додатках у майбутньому.
Уді Дахан

32
У шаблонах інтеграції підприємств (Woolf, Hohpe) схема перевірки претензій спеціально вирішує цю проблему. Посилання на велику корисну навантаження зберігається лише у повідомленні, зберігаючи повідомлення невеликим. Великі розміри повідомлень можуть завдати шкоди пропускній здатності системи обміну повідомленнями.
Кріс Паттерсон

4
Це не проблема з NServiceBus, оскільки вони мають концепцію шини даних, яка прозоро працює над обмеженнями розміру.
Халид Абухакмех
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.