Yazılım Mimarileri ve Tasarım Desenleri Üzerine

RabbitMQ – Basitçe Kuyruğa Mesaj Gönderme ve Okuma

RabbitMQ Nedir?

Merhaba,

Bu içeriğimizde bir uygulama üzerinden kuyruğa mesaj göndermeyi ve başka bir uygulama tarafından bu mesajı okumayı ele alan basit bir RabbitMQ uygulaması üzerine çalışıyor olacak ve böylece RabbitMQ’nun yazılımsal temelleriyle birlikte yapısal prensiplerini de ortaya koyuyor olacağız.

İlk olarak en sade mesaj gönderme senaryosunda kullanacağımız kuyruk yapılanmasını ve temel aktörleri şematik bir şekilde ele alarak başlayalım.

Yukarıdaki şemaya göz atarsanız eğer RabbitMQ’ya dair ilk olarak ele aldığımız makalemizdeki(bknz: RabbitMQ Nedir? Ne Amaca Hizmet Etmektedir?) görselde Exchange diye bir yapılanmanın olduğunu lakin bu yukarıdaki şemada ise olmadığını görmekteyiz. İlerideki makalelerimizde bol bol kendisinden bahsedeceğimiz exchange mekanizması basit bir mesaj gönderme işlemi gibi en temel yapılanmalarda kullanılmasına gerek olmayan bir yapılanmadır. Her ne kadar tarafımızca kullanılmasada sistem tarafından olması gereken bu yapılanmanın bu tarz durumlarda varsayılan olarak tanımlanmış olan default exchange’i devreye girmektedir.

Tekrardan şemaya dönersek eğer en temel işlem olan kuyruğa mesaj gönderme işini Publisher, kuyruktan okuma işini ise Consumer üstlenmektedir. Kuyruğa gönderilen mesajlar First In First Out(FIFO) mantığına göre sıralanmakta ve ilk gönderilen mesaj ilk olarak tüketilmektedir.

Şimdi bu teorik bilgilendirmeden sonra pratik uygulama üzerinden örneklendirmeye geçebiliriz.

Publisher ve Consumer Tasarlama

Yukarıda bahsedildiği gibi en temel senaryoda bile sadece Publisher ve Consumer olmak üzere iki aktörümüz mevcuttur. Bizler bu aktörleri birer Console Application olarak oluşturacak ve tasarlayacağız. Tabi ki de sizler gerçek ihtiyaçlarınıza dönük uygulamalar seçebilir ve içerikte ele alacağımız tüm RabbitMQ nimetlerinden faydalanabilirsiniz.

Derleyip, Test Edelim

Her iki projeyide derleyip sırasıyla Publisher ve Consumer şeklinde çalıştırdığımızda cloud’da ki bağlantı kurulan sunucuda kuyruğa atılan mesajların consumer tarafından tüketildiğini ve tek tek ekrana yazıldığını göreceksiniz.

Evet… Böylece basit bir mesaj kuyruk uygulaması yapmış bulunmaktayız. Tabi ki de sonraki içeriklerimizde olayı daha da detaylandıracak ve derinlerde anlamlı sistemler oluşturacağız.

İlgilenenlerin faydalanması dileğiyle…
Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…

Mobil sürümden çık