nServiceBus, Mass Transit vs Rhino Service Bus vs diğer?


104

Sadece güzel bir şekilde ayrılmış bir iş akışı sistemindeki dosyaları işlemek için muhtemelen bir mesajlaşma sistemi kullanmak için bazı hızlı artışlar yapmak.

İnsanların yukarıdaki çerçevelerin her birini kullanmakta buldukları profesyoneller ve eksiler nelerdir? WCF bağlamaları ve / veya MSMQ olmayan çözümlerle elle haddelenmiş bir MSMQ sistemine karşı bunları kullanmanın avantajları nelerdir?

Yanıtlar:


71

İşlemlerin nasıl ele alındığı, istisnaların nasıl geri dönüşlere neden olduğu, sonsuza kadar geri dönüşün nasıl durdurulacağı (zehirli mesajlar) gibi, tam olarak alınması gereken bir dizi zor şey olduğundan, elle çevrilmiş çözümlerden uzak durmanızı tavsiye ederim. durum yönetimi sınırlarının aynı hizada olması için uzun süreli iş akışlarıyla nasıl entegre edileceği ve daha fazlası.

Muhtemelen bir tür dayanıklı / işlemsel mesajlaşma altyapısı isteyeceksiniz, bu nedenle MSMQ kullanmadan Microsoft platformunda Service Broker'a veya ActiveMQ gibi başka bir alternatife bırakılacaksınız. MSMQ, Service Broker'ın aksine, tüm Windows makinelerine zaten yüklenmiş olmanın avantajına sahiptir.

NServiceBus, Mass Transit ve Rhino Service Bus arasında seçim yapma açısından - NServiceBus ile MassTransit'i karşılaştıran bu Stackoverflow cevabı başlamak için iyi bir yer olacaktır ..

3.1 sürümümüzde, sisteminizi daha yüksek bir soyutlama düzeyinde modellemenizi ve NServiceBus'un yapılandırmasının ve başlatılmasının çoğunun sizin için otomatik olarak yapılmasını sağlayan bir dizi Visual Studio entegre modelleme aracı olan NSB Studio'yu sunuyoruz. Bunun gerçekten ölçekleri NServiceBus lehine yönlendirdiğini söyleyebilirim.

Umarım yardımcı olur.

Feragatname: NServiceBus'un yazarıyım.


25
Rhino Servis Otobüsü çok Kale merkezlidir. Uygulama mimarinizin temel bir parçası olarak Castle'a aşina değilseniz / rahat değilseniz, onunla ilgili bazı zorluklar yaşayabilirsiniz. NServiceBus ve Toplu Taşıma veya daha fazla konteyner agnostik. NServiceBus, sisteminizi geliştirmeden teste ve üretime geçirirken kodunuzu barındırmanın yanı sıra aktif altyapı uygulamalarını (bellek içi, MSMQ ve DB gibi) değiştiren bir "uygulama sunucusu" ile birlikte gelir. Ayrıca mesaj işleme mantığınız ve uzun süreli süreçleriniz için birim test olanakları ile birlikte gelir. MassTransit'in bunlara sahip olduğuna inanmıyorum.
Udi Dahan

35
Muhtemelen Udi'nin NServiceBus'un YAZARISI olduğunu belirtmek gerekir ve bu yüzden onun görüşü burada biraz önyargılı olabilir. :) Bunu söyledikten sonra tamamen katılıyorum ve NServiceBus'un yaptığı nedenlerle kullanılmasını savunuyorum.
skb

8
@skb: kabul etti! Udi, nservicebus sorularını, özellikle de buna benzer soruları yanıtlarken gerçekten bir tür feragatname vermelisin!
andy

14
İnsanların şimdi onu benim yarattığımı bilmeyen NServiceBus'u keşfettikleri gerçeğine hala alışmaya başladım
Udi Dahan

5
@UdiDahan: nServiceBus "açık kaynak" nasıl? Kaynak kodunu kullanmak için lisans olmadan yayınlamak, açık kaynak, yani paylaşım ruhu için hiçbir şey yapmaz. Canlı bir satış yazılımı kazanma hakkınızı tamamen destekliyorum (ben de aynısını yapıyorum), ancak çözümü (2.0 sonrası) açık kaynak olarak sunmasaydınız çok daha doğru olacağını düşünüyorum.
Eric J.

52

NServiceBus iyi bir üründür ancak lisanslama sorunlarına dikkat edin. Yazarların istediği gibi lisanslama politikasını değiştirme eğilimindedir. Eski lisans bilgilerine bir göz atın .

Proje geliştirmenizin ortasında NServiceBus için çok para ödemeniz gerektiğini fark edebilirsiniz.

Ayrıca ücretsiz sürümün performans sınırlamaları vardır.

MassTransit tamamen ücretsiz bir açık kaynaktır, herhangi bir sınırlaması yoktur ve Apache 2.0 lisansı altındadır.

Ben kullanmadıysanız Rhino Service Bus .


1
Aslında, birden fazla makinede ücretsiz olarak çalıştırmanıza izin verecek 3.1 sürümüyle yeni bir lisans sağlayacağız (daha düşük verim seviyelerinde olmasına rağmen).
Udi Dahan

11
MassTransit senin adamın. Bedava; lisans kısıtlaması yok. Akış tasarımcısı olmadan yapabiliyorsanız ve kendi başınıza dönebiliyorsanız, onu yenemezsiniz. Ayrıca, RabbitMQ'nun üstüne oturabilir ve MSMQ, topluluk Azure eklentilerine sahiptir. MassTranit + RabbitMQ mükemmel bir stabil ortam olduğunu kanıtlamıştır ve çok hızlı bir şekilde tüketicilerinizi / üreticilerinizi hazır hale getirmenize ve çalıştırmanıza izin verir.
Bigtoe

3
Ayrıca EasyNetQ'yu (rabbitMQ etrafında basit bir paketleyici) düşünün Şaşırtıcı UDI, önerilerle tartışmalara daha fazla ağırlık vermiyor 4 iyi alternatif 2 nServiceBus? Demek istedigim. erken aşamalarda mesajlaşma yolculuğunda halka yardımcı olun. Başlamak için pek çok basit (ücretsiz) yol 2 vardır; kolay ve ideal olarak ücretsiz olduğu sürece ne kullandığınız önemli değil; (oynaması ücretsiz ve gerçek olarak uygulaması ücretsiz ve daha sonra değiştirmesi ücretsiz) Büyüdüğünüzde, kendi endişeler listenizi geliştireceksiniz; bu noktada daha olgun ürünler, kolay maliyet gerekçelendirmeleri ile kolay bir karar olabilir, örneğin nservicebus.
kar kodu

MassTransit 4.0 itibariyle MSMQ artık desteklenmiyor ( masstransit-project.com/MassTransit )
MyGGaN

25

Rhino ve NServicebus eyaletinde bir güncelleme:

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

InfoQ to Ayende: Daha önce kendiniz .NET için Rhino Service Bus adlı bir servis veriyolu yazmıştınız. Rhino Service Bus kullanıcıları şimdi yeniden düşünmeli ve NServiceBus'a geçmeli mi?

Ayende: Rhino Servis Otobüsünü 2008 civarında yaptım. Büyük ölçüde diğer servis otobüslerinin durumundan memnun olmadığım için inşa ettim. Servis otobüsümü oluştururken farklı endişelerim ve yönlerim vardı, ancak bu 4 yıl önceydi. O zaman, NServiceBus'un kullanımı daha kolay bir ürün haline gelme ve kutudan daha iyi bir gelişme hikayesine sahip olma konusunda büyük adımlar attığını düşünüyorum. Bugün servis otobüsleriyle başlayacak olsaydım, kendi otobüsümü yapacağımdan kesinlikle şüpheliyim.


9

MSMQ temelli herhangi bir şeyin potansiyel bir con, maksimum mesaj boyutundaki kısıtlamadır. IIRC, yaklaşık 4MB boyutundadır ve büyük dosyalarla uğraşıyorsanız ve dosya içeriğini mesaj içinde depoluyorsanız kolayca çalıştırabilirsiniz.


7
İlginçtir ki, çoğu bulut tabanlı kuyruk 100 KB'lık yükleri bile desteklemiyor, bu nedenle bu, gelecekte birçok uygulama tarafından dikkate alınması gereken bir şey.
Udi Dahan

32
Kurumsal Entegrasyon Modellerinde (Woolf, Hohpe), Talep Kontrolü modeli özellikle bu sorunu ele alır. Mesaj küçük tutularak büyük yüke bir referans yalnızca mesajda tutulur. Büyük mesaj boyutları, bir mesajlaşma sisteminin verimini tahrip edebilir.
Chris Patterson

4
Bu NServiceBus ile ilgili bir sorun değildir, çünkü boyut sınırlamaları etrafında şeffaf bir şekilde çalışan bir Veri Yolu konseptine sahiptirler.
Khalid Abuhakmeh
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.