Arşivler

RabbitMQ Round Robin Nedir?

RabbitMQ Dersleri
RabbitMQ Dersleri

RabbitMQ Dersleri‘ne devam ediyorum.

Bu yazıda RabbitMQ Java Publisher Uygulamamızdan birden fazla mesaj göndereceğiz ve Consumer uygulamamızı 2 node olarak çalıştıracağız ve RabbitMQ’ya birden fazla değer gönderdiğimizde ve birden fazla Consumer uygulamamız olduğunda nasıl bir davranış olacağını göreceğiz.

Round Robin Nedir?

Round Robin aslında bir bilgisayar algoritması kavramıdır.

RabbitMQ broker’ı consumerlara mesajları gönderirken bu algoritmayı kullanarak load balancing yapmaktadır. Bu sayede consumer’lara eşit şekilde mesajlar iletilmiş olmaktadır.

Uygulama

Önceki dersimizde yaptığımız Publisher uygulamasını birden fazla mesaj gönderecek şekilde güncelleyelim.

public class Publisher {

    public static void main(String[] args) throws IOException, TimeoutException {
        ConnectionFactory connectionFactory = new ConnectionFactory();
        Connection connection = connectionFactory.newConnection();
        Channel channel = connection.createChannel();
        
        String[] messages = {"İlk Mesaj", "İkinci Mesaj", "Üçüncü Mesaj", "Dördüncü Mesaj"};

        for (String message : messages) {
            channel.basicPublish("", "Kuyruk-1", null, message.getBytes());
        }
        
        channel.close();
        connection.close();
    }
}Code language: JavaScript (javascript)

Publisher uygulamamızda 4 adet mesaj gönderdik.

RabbitMQ dashboarduna bakalım

Önceki dersimizde yaptığımız consumer uygulamasından iki adet çalıştırdıktan sonra konsol çıktımız aşağıdaki gibi olacaktır.

Consumer Uygulaması -1

İlk Mesaj
Üçüncü Mesaj

Consumer Uygulaması – 2

İkinci Mesaj
Dördüncü Mesaj

RabbitMQ mesajların dengeli bir şekilde iki consumer node’una dağıtılmasını sağladı.

Sonraki yazıda görüşmek üzere

Önceki Ders: RabbitMQ Java Consumer Uygulaması
RabbitMQ Dersleri
Sonraki Ders: Direct Exchange Publisher/Consumer Uygulaması