MassTransit kullanarak RabbitMQ ile Messaging Altyapısı Oluşturma

Bunlar da hoşunuza gidebilir...

6 Cevaplar

  1. Ömer Cinbat dedi ki:

    Eline sağlık Gökhan. Güzel bir yazı olmuş. 🙂

  2. Fuat dedi ki:

    Merhaba Gökhan Hocam,
    RabbitMQ ile bu tür mesaj işlemlerini gerçekleştirirken cevabını merak ettiğim iki soru işareti oluştu kafamda. Burada RabbitMQ, Asp.net MVC ve Consumer programlarını çalıştıran makineler fiziki olarak ayrı yerlerde yani dağıtık olabilirler.

    Sorumun Birincisi, Asp.net mvc tarafında bir mesaj oluşturuldu ve kuyruğa eklendikten hemen sonra yani consume edilmeden önce RabbitMQ makinesi kapanırsa ve mesaj kaybolma durumlarına ne gibi önlemler alınabilir?

    İkinci sorum ise MassTransit ile biz RabbitMQ yönetimini manuel olarak yönetmekte mi kurtulmuş oluyoruz? MassTransit tam olarak ne işe yarar? Örneğin bizim yerimize connection açıp kuyruğu belirleyip ekleme işlemlerini mi gerçekleştirir.

    • Gökhan Gökalp Gökhan Gökalp dedi ki:

      RabbitMQ makinasından kastınız nedir? Eğer broker ise siz persistence mod’unda kullanıyorsanız message kaybolmaz. Tekrar ayağa kalktığında queue’lar mevcut state’leri ile ayakta olacaklardır. ESB’e bir nevi messaging mimarilerindeki common concern’leri içerisinde barındıran bir framework olarak düşünebiliriz. Örneğin hali hazırda retry mekanizmalarını handle etmesi, exchange ve queue’ları bind etmesi, ack’leri yönetebilmesi vb gibi.

  3. Emre dedi ki:

    Elinize sağlık Gökhan Hocam. Lakin “Şuanda .Net stack’i altında popüler olan NServiceBus ve MassTransit gibi ESB’ler mevcuttur” diye bir ibare geçmişsiniz. İçinde bulunduğum projelerde Masstransit’i schedular, saga , excepiton handling, vs.. advanced seviyede kullansak bile hiçbir zaman masstransit’e ESB gözü ile bakmadım. Çünkü Masstransit’in babaları (Chris Patterson ,Dru Sellers ) “we are not an Enterprise Service Bus (ESB). While MassTransit is used in several enterprises it isn’t a swiss army knife, we are not driven by sales to be a million features wide, and an inch deep. We focus on a few key concepts and try to make them as robust as possible.” burda açıkça belirtmişler amaçlarının ne olduğunu, biz aslında isveç çakısı değiliz sadece bir yere odaklanmak istedik vs.. Çalışmalarınızı gerçekten tebrik ediyorum fakat bilgi aktarırken bilginin doğru aktırılmasını, rica ediyorum

    • Gökhan Gökalp Gökhan Gökalp dedi ki:

      Teşekkür ederim yorumunuz ve ilginiz için. Evet haklısınız, felsefelerini anlatırken ESB olmadıklarını, daha az noktaya odaklanarak sağlam gitmeye çalıştıklarını söylüyorlar. 🙂 Sonuç olarak lightweight bir message bus ve bir çok distributed ortam problemlerini de handle etmekteler ve geniş de bir kullanım kitleleri var. (şahsen bir yılı aşkın bir süredir bir çok projede kullandım) Enterprise dememeleri, open-source olmalarına mı yoksa satışa yönelik olmamalarına mı yormalıyız bilemiyorum ama benim düşüncem, fazlasıyla alçak gönüllüler ve hiç bir eksik yönlerine denk gelmedim. NServiceBus olsun MassTransit olsun ikiside neredeyse benzer problemleri implemente etmekteler. Sonuçda ben sistemimin bileşenlerini distributed olarak kurabiliyorsam ki ESB’de özünde budur (bana göre) MassTransit’e de o gözle bakıyorum. 🙂 Yanlış/hatalı bir bilgi aktardığımı düşünmüyorum burada, makalemde de yazarken önce NServiceBus’ı yazıp, arkasından MassTransit’i eklememin sebebi de budur. Tekrar teşekkürler güzel yorumunuz için.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*