Connessione a RabbitMQ in Java

Mattepuffo's logo
Connessione a RabbitMQ in Java

Connessione a RabbitMQ in Java

In questo articolo vediamo come connetterci a RabbitMQ usando Java e AMPQ.

La libreria la possiamo installare facilmente tramite Maven.

Ecco la dipendenza da aggiungere:

<dependency>
  <groupId>com.rabbitmq</groupId>
  <artifactId>amqp-client</artifactId>
  <version>5.25.0</version>
</dependency>

Qua sotto un pò di codice in cui inviamo 100 messaggi e poi li leggiamo tutti:

package org.example;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

public class Main {
  public static void main(String[] args) {
    String QUEUE_NAME = "test_java";

    ConnectionFactory factory = new ConnectionFactory();
    factory.setHost("localhost");

    // INVIO
    try (Connection connection = factory.newConnection(); Channel channel = connection.createChannel()) {
      channel.queueDeclare(QUEUE_NAME, false, false, false, null);

      for (int i = 1; i < 101; i++) {
        String message = "Messaggio " + i;
        channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
        System.out.println("[x] Invio: " + message);
      }

    } catch (IOException | TimeoutException e) {
      System.out.println(e.getMessage());
    }

    // RICEVO
    try (Connection connection = factory.newConnection(); Channel channel = connection.createChannel()) {
      channel.queueDeclare(QUEUE_NAME, false, false, false, null);
      System.out.println(" [*] Lettura di tutti i messaggi nella coda...");

      while (true) {
        com.rabbitmq.client.GetResponse response = channel.basicGet(QUEUE_NAME, true);

        if (response == null) {
          System.out.println(" [*] Fine messaggi nella coda.");
          break;
        }

        String msg = new String(response.getBody());
        System.out.println("[x] Ricevuto: " + msg);
      }
    } catch (IOException | TimeoutException e) {
      System.out.println(e.getMessage());
    }
  }
}

Come al solito per comodità ho messo tutto insieme.

Enjoy!


Condividi

Commentami!