RabbitMQ

Sağlayan: RabbitMQ

Mesaj KuyruğuMikroservisAltyapı
Oluştur: RabbitMQ

Saniyeler içinde Cloud Sunucunuza kurulur.

RabbitMQ, Erlang programlama dili ile yazılmış, dünya çapında en yaygın kullanılan açık kaynak kodlu Mesaj Kuyruğu (Message Broker) yazılımıdır. Farklı sistemlerin, uygulamaların ve mikroservislerin birbirleriyle güvenli ve sıfır kayıpla haberleşmesini sağlar.

Öne Çıkan Özellikler ve Avantajlar

  • Gelişmiş Yönlendirme (Routing): Sadece basit bir kuyruk değil; Direct, Topic, Headers ve Fanout gibi zengin Exchange modelleri ile mesajları tam olarak hangi uygulamanın, hangi şartlarda alması gerektiğini mükemmel bir şekilde yönetir.
  • Sıfır Mesaj Kaybı (Reliability): Sunucu aniden kapansa veya elektrik kesilse bile mesajları diske (Persistent) yazarak korur. Tüketici (Consumer) mesajı başarıyla işlediğini bildirene (ACK) kadar mesaj kuyruktan silinmez.
  • Çoklu Dil Desteği: Sisteminizin bir tarafı Python, diğer tarafı Java, bir başkası PHP veya Node.js ile yazılmış olabilir. RabbitMQ hepsinin konuşabildiği ortak ve evrensel bir çevirmen / iletmen görevi görür.
  • Görsel Yönetim (Management UI): Kuyruklarınızda kaç mesaj biriktiğini, saniyede kaç mesajın aktığını ve bağlantı kalitelerini son derece güzel bir Web Yönetim paneli (Port 15672) üzerinden anlık izleyebilirsiniz.

Neden RabbitMQ Kullanmalısınız?

Örneğin büyük bir e-ticaret siteniz var. Müşteri 'Siparişi Tamamla' butonuna bastığında; fatura kesilmeli, kargo şirketine bildirim gitmeli, SMS atılmalı ve stok düşülmelidir. Tüm bu işlemleri aynı anda ve tek bir sunucuda yapmaya çalışırsanız müşteri sayfa yüklenene kadar saniyelerce bekler (veya sistem çöker). Çözüm: Siparişi RabbitMQ'ya bir mesaj olarak atın ve müşteriye 'Başarılı' deyin. Arka planda çalışan diğer Cenuta sunucularınız bu kuyruktan faturayı, SMS'i kendi hızlarında asenkron olarak halleder. RabbitMQ, büyük sistemlerin nefes almasını sağlayan ana aort damarıdır.

Bu İmajda Bulunan Tüm Yazılımlar

Bu hazır uygulama imajı, RabbitMQ Server uygulamasını en yüksek performans ve güvenlik standartlarında sorunsuz çalıştırmak için gereken tüm bağımlılıkları, kütüphaneleri ve yapılandırmaları içerir. Kurulum esnasında sistem aşağıdaki yazılımları sunucunuza entegre eder:

Yazılım / Paket AdıSürüm ve Detay Bilgisi
Mesaj BrokerRabbitMQ (En Güncel Sürüm)
Çalışma OrtamıErlang / OTP (Yüksek Eşzamanlılık İçin)
Yönetim ArayüzüRabbitMQ Management Plugin (Aktif Edilmiş)
İşletim SistemiUbuntu 22.04 LTS

Kurulum Sonrası Kapsamlı İlk Adımlar

Cenuta Cloud Sunucunuz başarıyla oluşturulduktan sonra RabbitMQ Server sistemine tam yetkiyle erişmek, güvenliğini sağlamak ve yapılandırmak için aşağıdaki adımları sırasıyla eksiksiz olarak izlemeniz gerekmektedir:

1
Web Paneline Erişim

Tarayıcınızın adres çubuğuna sunucunuzun IP adresini yazıp sonuna 15672 portunu ekleyin (Örn: `http://sunucu_ip_adresiniz:15672`).

2
Varsayılan Kullanıcı Girişi

İlk giriş için kullanıcı adı olarak `guest`, şifre olarak `guest` kullanabilirsiniz. Ancak bu hesap dış bağlantılara güvenlik sebebiyle kapalıdır veya kısıtlıdır.

3
Yeni Admin Hesabı Oluşturma

SSH üzerinden sunucunuza bağlanıp şu komutları sırasıyla yazın: `rabbitmqctl add_user yonetici GizliSifre123`, ardından `rabbitmqctl set_user_tags yonetici administrator` ve `rabbitmqctl set_permissions -p / yonetici ".*" ".*" ".*"` komutuyla tam yetki verin.

4
Guest Hesabını Silin (ÖNEMLİ)

Güvenliğiniz için terminalden `rabbitmqctl delete_user guest` komutunu yazarak herkesin bildiği varsayılan hesabı tamamen silin.

5
Uygulamanızı Bağlayın

Artık uygulamanız (Celery, Laravel Queue, Node.js AMQP vs.) üzerinden `amqp://yonetici:GizliSifre123@sunucu_ip_adresiniz:5672/` adresini vererek devasa mesaj kuyrukları oluşturabilirsiniz.

Merak Edilenler

RabbitMQ Hosting hakkında sıkça sorulan sorular.

RabbitMQ ile Kafka (veya Redis) arasındaki fark nedir?

Redis bir bellek içi veritabanıdır, pub/sub yapar ama mesaj kayıpları yaşanabilir. Kafka büyük veri (Big Data) loglarını tutmak için mükemmeldir. RabbitMQ ise faturalandırma, e-posta gönderimi gibi 'asla kaybolmaması gereken ve tek tek işlenen' geleneksel iş kuyruklarında endüstri lideridir.

Port 5672 ve 15672 farkı nedir?

Port 5672 (AMQP), kodlarınızın, uygulamalarınızın (Node, PHP vs.) mesaj gönderip aldığı ana iletişim kanalıdır. Port 15672 ise sizin tarayıcıdan kuyrukları izlediğiniz görsel arayüzdür.

Sunucu RAM'i yeterli gelmezse ne olur?

RabbitMQ RAM dostudur. Ancak kuyrukta (consumer kapalı olduğu için) milyonlarca mesaj birikirse RAM dolabilir. Bu durumda RabbitMQ yeni mesaj alımını geçici olarak durdurur (Memory Alarm).

Cluster (Küme) kurabilir miyim?

Evet. İki veya daha fazla Cenuta Cloud sunucusuna RabbitMQ kurarak bunları bir Cluster haline getirebilir, mesajların sunucular arasında %100 yedekli (High Availability) çalışmasını sağlayabilirsiniz.

Performansı nasıldır?

Standart bir Cenuta Cloud (2-4 Core) sunucusunda saniyede 10.000 ile 50.000 arası mesajı çok rahatlıkla işleyip iletebilir.