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!
java maven rabbitmq
Commentami!