Utilizzare ZeroMQ con Java

Mattepuffo's logo
Utilizzare ZeroMQ con Java

Utilizzare ZeroMQ con Java

ZeroMQ è una libreria per lo scambio di messaggi tra un client ed un server di tipo brokerless!

Sostanzialmente vuol dire che nella libreria è già incluso tutto quello che ci serve, senza altre configurazioni.

In questo articolo vediamo un esempio di utilizzo in Java.

Nello specifico useremo la libreria JeroMQ, che potete installare con Maven:

<dependency>
	<groupId>org.zeromq</groupId>
	<artifactId>jeromq</artifactId>
	<version>0.5.2</version>
</dependency>

Qui sotto un esempio di server:

import org.zeromq.SocketType;
import org.zeromq.ZContext;
import org.zeromq.ZMQ;

public class Main {

    public static void main(String[] args) {
        try (ZContext context = new ZContext()) {
            System.out.println("Server avviato...");

            ZMQ.Socket socket = context.createSocket(SocketType.REP);
            socket.bind("tcp://*:5555");

            while (!Thread.currentThread().isInterrupted()) {
                byte[] reply = socket.recv(0);

                System.out.println("Dato ricevuto: [" + new String(reply, ZMQ.CHARSET) + "]");

                String response = "CIAO DAL SERVER!";
                socket.send(response.getBytes(ZMQ.CHARSET), 0);
            }
        }
    }

}

Se invece volessimo creare un client:

import org.zeromq.SocketType;
import org.zeromq.ZContext;
import org.zeromq.ZMQ;

public class Main {

    public static void main(String[] args) {
        try (ZContext context = new ZContext()) {
            System.out.println("Connessione al server...");

            ZMQ.Socket socket = context.createSocket(SocketType.REQ);
            socket.connect("tcp://localhost:5555");

            for (int requestNbr = 0; requestNbr != 10; requestNbr++) {
                String request = "CIAO DAL CLIENT!";
                socket.send(request.getBytes(ZMQ.CHARSET), 0);

                byte[] reply = socket.recv(0);
                System.out.println("RISPOSTA DAL SERVER: " + new String(reply, ZMQ.CHARSET) + " " + requestNbr);
            }
        }
    }

}

Enjoy!


Condividi su Facebook

Commentami!