Sitemap

Bölüm 1 : RabbitMQ Nedir ?

2 min readFeb 13, 2022

--

RabbitMQ serisinin ilk bölümünde çok fazla kafa karıştırmadan kısaca RabbitMQ Nedir ? Ne işe yarar gibi sorulara açıklık getireceğim.Daha sonraki bölümlerde ise biraz daha detaylı ele alıcağım.

RabbitMQ

RabbitMQ kısaca Mesaj Kuyruğu ( Message Queue ) olarak isimlendirebiliriz. Peki bu mesaj kuyruğu ne işe yarar ne için kullanılır?

Mesaj Kuyruğu (Message Queue) Nedir ?

Mesaj kuyruğu için postane örneği çok fazla kullanılmaktadır. İlgili veri paketlenerek postaneye (Buradaki postanemiz Mesaj Kuyruğu oluyor) iletilir. Postane işleme alır ve alıcıya teslim eder. Bu süre içerisinde işlemlerinize devam eder işlemin tamamlanmasını beklemeyiz böylelikle uzun süren cevap (Response) süreleri beklemek zorunda kalmayız.

Peki RabbitMQ nasıl çalışır ?

RabbitMQ asenkron bir şekilde çalışır. AMQP (Advanced Message Queuing Protocol) Protokolünü kullanır.

RabbitMQ en tepeden baktığınızda 4 ana başlık ile ayırabiliriz.

  1. Publisher
  2. Exchange
  3. Queue
  4. Consumer

Publisher

RabbitMQ mesaj üreten uygulamadır. Publisher mesajı paketleyip publish ettikten sonra devreye Exchange girmekte.

Exchange

Mesajı hangi kuyruğa nasıl göndericeğimizi Exchange içerisindeki route dan öğreniriz. Kuyruğa gelen mesajlar Queue de sıralanır.

Queue

Queue FIFO ( İlk giren ilk çıkar ) mantığı ile çalışmaktadır. Queue içerisinde sıralanan mesajlar ise Consumer tarafından okunur.

Consumer

Consumer kuyruğu dinleyen herhangibi bir uygulama olabilir. İlgili kuyruktaki mesajları dinleyerek yorumlar ve cevap olarak geri döner.

Get Serhan Yavçin’s stories in your inbox

Join Medium for free to get updates from this writer.

RabbitMQ Neden ve Nerede kullanıyoruz ?

Uygulama içerisinde bazı isteklerin (Request) cevap (Response) süresi uzun sürebilir ve bunun sebebinde istekler zaman aşımına ( Timeout ) uğrayabilir veya bazen kullanıcı ( Client ) tarafında hata olarak algılanabilir.

Bunun önüne geçmek için yapılan request paketlenip publish edilir ve mesaj kuyruğuna eklenir. İlgili kuyrukları dinleyen consumer bu paketi açar isteği yorumlar ve kullanıcıya cevabı döner. Böylelikle client’e sağlıklı bir şekilde response iletilmiş olur.

Bir örnek ile konuyu daha da netleştirelim.

Bir E-Ticaret uygulamamız var ve bu uygulama içerisinde client 6 aylık ürün satış raporunu xls formatında almak istiyor.

Normal şartlarda anlık olarak gelen request i yorumlar veritabanından sorgumuzu çalıştır verilerimizi hazırlar xls formatında client e sunarız.

Fakat büyük verilerde response dönmek uzun bir süre alabilir. Bunun yerine client in yapmış olduğu request i paketleyerek publish ediyoruz ve Exchange devreye giriyor ( Bir sonraki yazımda daha detaylı anlatıyor olucağım ) daha sonrasında ilgili Queue veririmiz eklenir.

Consumer paketi açar yorumlar ve client istediği raporu xls formatında hazırlayıp dönüş yapar. Bu süre içerisinde client raporun hazırlanmasını beklemeden işlemlerine devam edebilir.

Bir sonraki yazımda RabbitMQ kurulumu ve Exchange Types konuları ile devam edicem.

--

--