RabbitMQ Nedir?
RabbitMQ Kurulumuna Başlamadan Önce
Erlang Kurulumu
1. Linux için:
Eğer Ubuntu veya Debian tabanlı bir sistem kullanıyorsanız, şu komutu terminalde çalıştırarak Erlang’ı kurabilirsiniz:
sudo apt-get update
sudo apt-get install erlang
2. Windows için:
[Erlang'ın resmi sitesine](https://www.erlang.org/downloads) gidin ve Windows için uygun sürümü indirin. Kurulum sihirbazını takip edin.
RabbitMQ Kurulumu
1. RabbitMQ'yu Kurma
Linux:
RabbitMQ’yu kurmak için, aşağıdaki komutları terminalde çalıştırabilirsiniz:
sudo apt-get install rabbitmq-server
Windows:
Windows’ta, RabbitMQ'yu kurmak için, [RabbitMQ’nun resmi sitesine](https://www.rabbitmq.com/download.html) gidin ve Windows için uygun sürümü indirin. İndirilen dosyayı çalıştırarak kurulumu başlatın.
2. RabbitMQ Hizmetini Başlatma
Linux:
Kurulum tamamlandıktan sonra RabbitMQ servisini başlatmak için şu komutu çalıştırabilirsiniz:
sudo systemctl start rabbitmq-server
Windows:
RabbitMQ servisinin başlaması için, "RabbitMQ Command Prompt"u yönetici olarak çalıştırarak aşağıdaki komutu yazın:
rabbitmq-server start
RabbitMQ Web Yönetim Paneline Erişim
1. RabbitMQ Web Yönetim Panelini Etkinleştirme
sudo rabbitmq-plugins enable rabbitmq_management
Bu komut RabbitMQ'nun yönetim panelini etkinleştirecektir.
2. Yönetim Paneline Giriş Yapma
Artık tarayıcınızı açarak şu adresi ziyaret edebilirsiniz:
[http://localhost:15672](http://localhost:15672)
Giriş yapmak için varsayılan kullanıcı adı ve şifreyi kullanabilirsiniz:
- Kullanıcı adı: guest
- Şifre: guest
RabbitMQ Yapılandırması
1. Queue (Kuyruk) Oluşturma
Kuyruklar, mesajların depolandığı ve tüketici tarafından alınacağı yerlerdir. RabbitMQ'yu kullanarak yeni bir kuyruk oluşturmak oldukça kolaydır. Bunun için RabbitMQ yönetim paneline giriş yaptıktan sonra, "Queues" sekmesine tıklayın ve "Add a new queue" butonuna basın. Burada, kuyruğun adı gibi bazı temel özellikleri belirleyebilirsiniz.
2. Exchange (Değişim Noktası) Oluşturma
Exchange, mesajların yönlendirilmesiyle ilgilidir. Yani, mesajların hangi kuyruğa gideceğini belirler. RabbitMQ'da birkaç tür exchange vardır:
- Direct Exchange: Mesajlar doğrudan bir kuyruğa yönlendirilir.
- Topic Exchange: Mesajlar belirli bir desene göre yönlendirilir.
- Fanout Exchange: Mesajlar tüm bağlı kuyruklara gönderilir.
3. Binding (Bağlantı) Yapma
Kuyruklar ile exchange'ler arasında bağlantılar kurarak mesajların doğru yönlendirilmesini sağlarız. RabbitMQ yönetim panelinde, bir kuyruk ile exchange arasında bağlantı kurabilirsiniz.
RabbitMQ İle Mesaj Gönderme ve Alma
Mesaj Gönderme (Producer)
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
# Kuyruk oluşturuluyor
channel.queue_declare(queue='hello')
# Mesaj gönderiliyor
channel.basic_publish(exchange='',
routing_key='hello',
body='Merhaba RabbitMQ!')
print("Mesaj gönderildi!")
connection.close()
Mesaj Alma (Consumer)
import pika
def callback(ch, method, properties, body):
print(f"Alınan mesaj: {body}")
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
# Kuyruk oluşturuluyor
channel.queue_declare(queue='hello')
# Mesajlar dinleniyor
channel.basic_consume(queue='hello', on_message_callback=callback, auto_ack=True)
print("Mesajları dinliyoruz...")
channel.start_consuming()