Java RabbitMQ'nun Çalışma modu, tek bir kuyruktan mesajları tüketmek üzere birden fazla tüketiciyi yapılandırmaktır. Bu, mesajların eş zamanlı işlenme hızını artırabilir. Mimarisi aşağıdaki diyagramda gösterildi.
Not: RabbitMQ'da hangi çalışma modunun kullanıldığına bakılmaksızın, her kuyruk birden fazla tüketiciyi destekler. Aynı kuyruk için, bir mesaj yalnızca tüketiciyi tarafından işlenecektir.
1. Hazırlayıcı Öğretici
Lütfen ilgili bilgileri anlamak için önce aşağıdaki bölümleri okuyun.
- RabbitMQ Temel Kavramlar
- RabbitMQ Çalışma Modu
- Java için RabbitMQ Hızlı Başlangıç (Zorunlu, çünkü devam eden bölümler kodları tekrar etmeyecek ancak sadece ana kodları gösterecektir)
2. Birden Fazla Tüketiciyi Yapılandırma
RabbitListener açıklamasını kullanarak ve concurrency parametresini yapılandırarak aşağıdaki kod ile 10 tüketiciyi aynı anda mesajları işlemeye başlatabilirsiniz.
package com.tizi365.rabbitmq.listener;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
@Component
// Mesaj dinleyicisini tanımlayın ve queues parametresi aracılığıyla dinlenmesi gereken kuyruğu belirtin
// Anahtar parametre: concurrency, mevcut dinleyici için başlatılması gereken tüketici sayısını temsil eder ve tipi dizedir
@RabbitListener(queues = "hello", concurrency = "10")
public class HelloListener {
// RabbitHandler'ı kullanarak mesaj işleyicisini işaretlemek, bu, mesaj işleme mantığını yürütmek için kullanılır
@RabbitHandler
public void receive(String msg) {
System.out.println("Tüketici - Alınan mesaj: '" + msg + "'");
}
}