← Tüm yazılar

RabbitMQ Nedir?

4 Şubat 2026 · Atakan Güloğlu

3 dk okuma~433 kelime·RSS ile takip et
Paylaş:
RabbitMQ Nedir?

RabbitMQ, uygulamalar arasında asenkron iletişim sağlayan bir mesaj kuyruk (Message Queue) sistemidir. Uzun süren veya yoğun istek alan işlemleri arka plana alarak sistemlerin performansını, ölçeklenebilirliğini ve dayanıklılığını artırır. Mesajlar exchange üzerinden routing key’lere göre ilgili queue’lara yönlendirilir ve consumer’lar tarafından uygun zamanda işlenir. E-posta gönderimi, raporlama, bildirim ve mikroservis mimarilerinde yaygın olarak kullanılır.

Nasıl Kurulur ve Nasıl Konfigüre Edilir?

Kurumsal uygulamalar büyüdükçe senkron çalışan sistemler yetersiz kalmaya başlar.
Yoğun istek alan, uzun süren işlemleri olan veya servisler arası bağımlılığı azaltmak isteyen projelerde mesaj kuyrukları (Message Queue) kaçınılmaz hale gelir.

Bu noktada en sık karşılaşılan çözümlerden biri RabbitMQ’dur.


RabbitMQ Nedir?

RabbitMQ, asenkron mesajlaşma sağlayan bir Message Broker’dır.
Temel amacı; bir işlemi yapan sistem ile bu işlemi tüketen sistemi zamansal ve yapısal olarak ayırmaktır.

Kısaca:

  • Üreten sistem (Publisher) mesajı kuyruğa bırakır

  • Tüketen sistem (Consumer) uygun zamanda bu mesajı işler

  • Üreten sistem, işlemin tamamlanmasını beklemez

Bu sayede:

  • Sistemler birbirini kilitlemez

  • Performans artar

  • Ölçeklenebilirlik sağlanır

RabbitMQ, Erlang dili ile geliştirilmiştir ve yüksek erişilebilirlik konusunda oldukça güçlüdür.


Gerçek Hayat Benzetmesi

RabbitMQ’yu bir kargo firması gibi düşünebilirsin:

  • Gönderici paketi verir

  • Kargo firması paketi sıraya alır

  • Alıcı uygun zamanda teslim alır

  • Gönderici “paket ulaştı mı?” diye beklemez

RabbitMQ Nerelerde Kullanılır?

Pratikte en çok karşılaşılan kullanım senaryoları:

  • 📧 E-posta gönderimi

  • 📄 Dinamik rapor üretimi

  • 🔔 Bildirim sistemleri

  • 🧾 Log ve event toplama

  • 🛒 Yoğun trafik alan e-ticaret işlemleri

Örneğin:

Kullanıcı rapor ister → istek kuyruğa alınır → arka planda rapor üretilir → hazır olunca kullanıcıya bildirim gider.


RabbitMQ Temel Bileşenleri

RabbitMQ mimarisinde birkaç temel kavram vardır:

🔹 Publisher

Mesajı kuyruğa gönderen uygulama.

🔹 Consumer

Kuyruğu dinleyen ve mesajı işleyen uygulama.

🔹 Queue

Mesajların saklandığı yapı.

🔹 Exchange

Mesajların hangi kuyruğa gideceğine karar veren ara katman.

🔹 Routing Key

Mesajın hangi kurala göre yönlendirileceğini belirler.


Exchange Türleri

1️⃣ Direct Exchange

Mesaj, routing key ile birebir eşleşen kuyruğa gider.

- Net ve kontrollü yönlendirme için kullanılır.


2️⃣ Fanout Exchange

Routing key dikkate alınmaz.
Mesaj, exchange’e bağlı tüm kuyruklara gönderilir.

- Broadcast / notification senaryoları için idealdir.


3️⃣ Topic Exchange

Routing key desenlerine göre yönlendirme yapılır.

Örnek:

Esnek ve güçlü yönlendirme isteyen sistemlerde tercih edilir.


4️⃣ Headers Exchange

Routing key yerine message header’lara bakılır.

📌 Daha özel filtreleme gereken durumlar için kullanılır.


RabbitMQ Kurulumu (Windows)

1️⃣ Erlang Kurulumu

RabbitMQ, Erlang üzerinde çalışır.

https://www.erlang.org/downloads
Uygun sürümü indirip kur.


2️⃣ RabbitMQ Kurulumu

https://www.rabbitmq.com/install-windows.html
Windows installer ile kurulumu tamamla.


RabbitMQ Konfigürasyonu

🔹 Node Name Ayarı

  • RabbitMQ node name, bilgisayar host name ile aynı olmalıdır.

  • Environment Variables içine eklenir.


 Management Plugin Aktif Etme

RabbitMQ Command Prompt açılır ve şu komut çalıştırılır:


 Yönetim Paneli

Tarayıcıdan erişim:


http://localhost:15672


Varsayılan giriş bilgileri:

Username: guest

Password: guest


Kullanıcı Oluşturma ve Yetkilendirme


Neden RabbitMQ?

RabbitMQ kullanmak:

  • Sistemi gevşek bağlı (loosely coupled) hale getirir

  • Trafik patlamalarında sistemi korur

  • Uzun süren işlemleri arka plana taşır

  • Mikroservis mimarileri için güçlü bir temel oluşturur

Sonuç

RabbitMQ sadece bir kuyruk sistemi değildir.
Doğru kullanıldığında:

  • Daha dayanıklı

  • Daha ölçeklenebilir

  • Daha yönetilebilir

kurumsal sistemler inşa etmeni sağlar. 


KAYNAK:  https://www.rabbitmq.com/getstarted.html

Yorumlar