Exemples de téléchargement, de configuration et d'implémentation Java de RabbitMQ de producteurs et de consommateurs sous Windows

RabbitMQ est un middleware de courtage de messages léger qui prend en charge plusieurs protocoles de communication de messages, prend en charge le déploiement distribué, prend en charge l'exécution sur plusieurs systèmes d'exploitation et possède des fonctionnalités telles que la flexibilité et la haute disponibilité. RabbitMQ prend en charge une variété de protocoles, dont le plus important est le protocole AMQP (Advanced Message Queuing Protocol), qui définit le protocole de communication entre «client de message» et «middleware de courtier de messages». Sur la base de ce protocole, le client de message et le middleware de être libre des contraintes des langages de développement et des produits spécifiques.

Le modèle approximatif d'AMQP est illustré dans la figure ci-dessous:

  

Le producteur transmet le message au "courtier de messages (serveur RabbitMQ)", un canal de message (Channel) est établi entre eux, et le message est d'abord traité par l'échange (Exchange), puis remis à une file d'attente de messages (Message Queue ), et enfin le message La file d'attente envoie le message à la personne chargée du message.

1. Téléchargez RabbitMQ et Erlang

La version la plus élevée du serveur RabbitMQ sous Windows est 3.8.1, lien de téléchargement: https://www.rabbitmq.com/install-windows.html

Le serveur RabbitMQ utilise le langage Erlang, vous devez donc également télécharger Erlang, la version actuelle la plus élevée est 22.1,
adresse de téléchargement: http://erlang.org/download/, cliquez sur le nom du fichier otp_win64_22.1.exe à l'intérieur pour télécharger.

Deux, placement

1. RabbitMQ démarrera en tant que service Windows après l'installation.

2. Ouvrez la gestion des plug-ins

cmd dans le répertoire sbin du répertoire d'installation, entrez la commande suivante pour installer:
rabbitmq-plugins enable rabbitmq_management

Entrez la commande suivante pour afficher l'état du plug-in:
rabbitmq-plugins list

3. Connectez-vous à l'interface de gestion Web

Étape 2 Après l'ouverture du plug-in, cette adresse est accessible: http: // localhost: 15672 /
Entrez le nom d'utilisateur et le mot de passe par défaut (les deux sont invités) pour vous connecter, l'interface après la connexion est la suivante

Remarque: Un autre port 5672 de RabbitMQ est utilisé pour la communication client.

Troisièmement , implémentation Java d'exemples de producteurs et de consommateurs

Pour le serveur, le producteur et le consommateur de messages appartiennent au client et communiquent avec le serveur via le protocole AMQP. AMQP n'est pas limité par le langage et le client peut être implémenté dans différents langages de programmation. Le client est écrit en Java ci-dessous.

Créez un nouveau projet Maven et ajoutez des dépendances à pom.xml:

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

1. Écrivez au producteur

Créez un nouveau générateur de messages et envoyez un message au serveur.

package com.example.rabbittest;

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 Send {
    public static void main(String[] args) throws IOException, TimeoutException {
        //创建连接
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("localhost");
        Connection connection = factory.newConnection();
        //建立通道
        Channel channel = connection.createChannel();
        //声明队列
        String queueName = "hello";
        channel.queueDeclare(queueName,false,false,false,null);
        String message = "hello world";
        //消息发布
        channel.basicPublish("", queueName, null, message.getBytes());
        //关闭通道和连接
        channel.close();
        connection.close();
    }
}

Le code ci-dessus ne déclare pas de commutateur et le commutateur par défaut sera utilisé.

Après avoir exécuté le code, connectez-vous à http: // localhost: 15672 /, cliquez sur l'onglet Files d'attente et vous pouvez voir que la file d'attente Hello est créée.

2. Écrivez aux consommateurs

Créez un nouveau consommateur de messages (dans le même projet que le producteur) et acceptez les messages du serveur.

package com.example.rabbittest;

import com.rabbitmq.client.*;

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

public class Receive {
    public static void main(String[] args) throws IOException, TimeoutException {
        //创建连接
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("localhost");
        Connection connection = factory.newConnection();
        //建立通道
        Channel channel = connection.createChannel();
        //声明队列
        String queueName = "hello";
        channel.queueDeclare(queueName,false,false,false,null);
        String message = "hello world";
        //消息发布
        Consumer consumer = new DefaultConsumer(channel){
            @Override
            public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
                String message = new String(body, "UTF-8");
                System.out.println("接收的消息:" + message);
            }
        };
        channel.basicConsume(queueName, true, consumer);
    }
}

Après avoir exécuté le code, ouvrez la console RabbitMQ, cliquez sur la file d'attente Hello et vous pouvez voir qu'il existe des consommateurs correspondants.

 

Je suppose que tu aimes

Origine blog.csdn.net/gdjlc/article/details/115008489
conseillé
Classement