C# ile RabbitMQ Client’ı kullanarak Publisher ve Consumer Yapısı

Bunlar da hoşunuza gidebilir...

5 Cevaplar

  1. Akansu dedi ki:

    Saolasın. Lakin bir windows servisi ile örneklemek daha hoş olurdu. 🙂

  2. Halit dedi ki:

    Merhaba gökhan hocam. Rabbitmq konusunda mesajların default olarak memory üzerinde tutulduğunu okudum. Ancak gerçek bir senaryoda Rabbitmq sunucusunun kapanıp açıldığı durumda mesajların kaybolması söz konusu oluyor. Tüm mesajların diske yazılması da yoğun mesajlaşmada performansa etki eder mi? Bu gibi sorunlarda nasıl bir strateji uygulanır. Sonuçta herkesin verisi önemlidir ve kimse memory üzerinde kritik bilgi saklamak istemez.

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

      Merhabalar, evet default olarak in-memory çalışmaktadır. Persistent’ı sağlayabilmek için ise “durable” ayarlarına bakabilirsiniz disk üzerine yazabilmek için. Detaylı bilgiye buradan erişebilirsiniz. Gerçek bir senaryoda ise bu sizin business’ınıza ve ihtiyaçlarınıza göre farklılık gösterir. Elbette in-memory kadar performanslı olmayacaktır disk’e yazılması. Disk’e yazma ihtiyacınızıda, iyi belirlemeniz gerek ne kadar yoğun bir trafik altında çalışacak ve boyutları ne olacak vb. Çünkü bu sadece asenkron yapılabilecek küçük işlemler için bir mesajlaşma yapısı ve o yüzden kritik bilgiler de içermez. Sadece bir yere yazılmış işi alır, ilgili yere yönlendirir (aktarır).

  3. merve yılmaz dedi ki:

    Gökhan Hocam Merhaba.RabbitMQ makale serisi için teşekkürler,çok faydalı oldu.Publisher ile RabbitMQ ye 1000 in üzerinde kayıt atıp,tüm kayıtlar için Consumer i çalıştırdığım zaman RabbitMQ da Ready statusündeki tüm kayıtlar 0 olarak gözüktü ve Consumer kayıtları teker teker
    işlemeye başladı.Fakat ben Consumer u durdurunca işlenmemiş tüm kayıtlarda kayboldu.RabbitMQ da bu şekilde bir birikme olduğunda Consumer ın kayıtları teker teker işleyemeyip yarıda kesilirse nasıl bir yol izlemek gerekir?autoAck parametresini false set ettiğimiz zamanda Consumer ı yarıda kesince tüm kayıtlar tekrar Ready statusüne geçti.MQ nun mantığında kayıtları sırasıyla okunup silinmesi gerekmiyor mu?RabbitMQ da bunu biz mi yönetmeliyiz? Teşekküler

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

      Merhaba, eğer pure rabbitmq’nun client’ı ile ilerlerseniz, reliability konularını sizin yönetmeniz gerekmektedir, yani ack bilgilerini. Sırasıyla okunup, başarılı bir şekilde işlenir ve ack bilgisi gönderilirse silinir, ack bilgisi gönderilemez ise, tekrardan ready moda geçecektir. Dilerseniz MassTransit ile ilgili olan makalelerime bir göz atın, reliability konularını handle etmektedir.

Bir Cevap Yazın

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

*