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 Service Bus е много ориентиран към Castle. Ако не сте запознати/удобно с Castle като основна част от архитектурата на вашето приложение, може да имате известни затруднения с него. NServiceBus и Mass Transit или повече контейнери агностик. NServiceBus идва със сървър за приложения, който се справя с хостването на вашия код, както и с промяната на активни инфраструктурни реализации (като in-memory, MSMQ и DB), докато прехвърляте системата си от dev към test към prod. Той също така идва със средства за тестване на единици за вашата логика за обработка на съобщения и дълготрайни процеси. Не вярвам, че 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 Service Bus.

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) Suprised 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 срещу NServicebus:

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

InfoQ към Ayende: Вие преди това сами сте написали сервизна шина за .NET, а именно Rhino Service Bus. Трябва ли сега потребителите на Rhino Service Bus да преразгледат и да преминат към NServiceBus?

Ayende: Създадох Rhino Service Bus около 2008 г. Направих го най-вече защото не бях доволен от състоянието на другите сервизни автобуси по това време. Имах различни притеснения и насоки при изграждането на моя служебен автобус, но това беше преди 4 години. През това време мисля, че NServiceBus направи големи крачки в превръщането си в по-лесен за използване продукт и има много по-добра история за разработка извън кутията. Ако днес започвах със служебни автобуси, силно се съмнявам, че щях да правя свои собствени.

person Ciprian Teiosanu    schedule 21.08.2012

потенциален недостатък на всичко, базирано на MSMQ, е ограничението за максимален размер на съобщението. IIRC е приблизително 4 MB, което лесно може да попаднете, ако имате работа с големи файлове и съхранявате съдържанието на файла в съобщението.

person quick_dry    schedule 23.10.2009
comment
Интересното е, че повечето базирани в облак опашки дори не поддържат полезни натоварвания от 100 KB, така че това е нещо, което ще трябва да се вземе предвид от много приложения в бъдеще. - person Udi Dahan; 23.10.2009
comment
В шаблоните за корпоративна интеграция (Woolf, Hohpe), моделът за проверка на искове конкретно се занимава с това безпокойство. Препратка към големия полезен товар се запазва само в съобщението, запазвайки съобщението малко. Големите размери на съобщения могат да предизвикат хаос в пропускателната способност на системата за съобщения. - person Chris Patterson; 26.10.2009
comment
Това не е проблем с NServiceBus, тъй като те имат концепция за шина за данни, която прозрачно заобикаля ограниченията на размера. - person Khalid Abuhakmeh; 29.05.2012