Windows 10 システムでの RabbitMQ のインストールと簡単な使用

1. Erlang をダウンロードしてインストールします。

RabbitMQ サーバーは Erlang に基づいて作成されているため、最初に Erlang をインストールする必要があります。

1) ダウンロード

ダウンロードアドレスは以下の通りです。

https://www.erlang.org/downloads

ここに画像の説明を挿入

ここでのダウンロードは比較的遅いので、次の Baidu ネットワーク ディスクを参照してください:
リンク: https://pan.baidu.com/s/1oXq5QX3IlzRq5L-mk1gC4Q
抽出コード: luna

2) インストールする

対応するインストール ディレクトリを選択して、次へ進みます。

3) 環境変数を設定する

システム変数に新しい変数を作成します 変数
名 (N): ERLANG_HOME
変数値 (V): H:\SW_install\erl-24.1

注: 変数値は実際の状況に応じて変更する必要があります

ここに画像の説明を挿入
Path変数値の末尾に;%ERLANG_HOME%\binを追加します

4) 環境変数の設定が正しいことを確認します。

echo %ERLANG_HOME%

ここに画像の説明を挿入


2.RabbitMQをダウンロードしてインストールします

1) ダウンロード

ダウンロードアドレスは以下の通りです。

https://www.rabbitmq.com/install-windows.html#installer

ここに画像の説明を挿入

2) インストールする

対応するインストール ディレクトリを選択して、次へ進みます。

3) 環境変数を設定する

システム変数に新しい変数を作成します 変数
名 (N): RABBITMQ_SERVER
変数値 (V): H:\SW_install\RabbitMQ Server\rabbitmq_server-3.9.7

注: 変数値は実際の状況に応じて変更する必要があります

ここに画像の説明を挿入
;%RABBITMQ_SERVER%\sbin をPath変数値の末尾に追加しますここに画像の説明を挿入

4) 環境変数の設定が正しいことを確認します。

echo %RABBITMQ_SERVER%

ここに画像の説明を挿入

5) Rabbitmq-plugins をインストールする

cmd コマンドはコマンド ライン ウィンドウを開き、rabbitmq インストール bin ディレクトリに入ります (私のディレクトリは H:\SW_install\RabbitMQ Server\rabbitmq_server-3.9.7\sbin)

次のコマンドを実行してプラグインをインストールします。

rabbitmq-plugins.bat enable rabbitmq_management

ここで次のエラーが報告された場合:
ERLANG_HOME が正しく設定されていません
。 設定された環境変数が正しいことを確認した後、C: ディレクトリから RabbitMQ インストール bin ディレクトリに階層ごとに移動し、プラグインのインストールを再度実行して問題を解決します。 。

6) RabbitMQ サービスを開始します

net start RabbitMQ

または、
rabbitmq の sbin ディレクトリで、rabbitmq-server.batファイルをダブルクリックして実行します。

7) RabbitMQ サービスを停止します。

net stop RabbitMQ

8) サービスステータスの表示

rabbitmqctl status

9) RabbitMQへのページアクセス

http://localhost:15672
アカウント/パスワード: guest / guest

ここに画像の説明を挿入
ログイン後のページは次のとおりです。
ここに画像の説明を挿入
ここに画像の説明を挿入


3. RabbitMQ の簡単な使い方

1) RabbitMQ の pom リファレンス

<!-- https://mvnrepository.com/artifact/com.rabbitmq/amqp-client -->
<dependency>
    <groupId>com.rabbitmq</groupId>
    <artifactId>amqp-client</artifactId>
    <version>5.13.1</version>
</dependency>

2) メッセージ送信者

package com.miracle.luna.rabbitmq;

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

import java.nio.charset.StandardCharsets;

/**
 * @author Miracle Luna
 * @date 2021/10/19
 */
public class SendMQ {
    
    
    private final static String QUEUE_NAME = "hello";

    public static void main(String[] args) throws Exception{
    
    
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("localhost");
        factory.setPort(5672);
        factory.setUsername("guest");
        factory.setPassword("guest");

        final Connection connection = factory.newConnection();
        final Channel channel = connection.createChannel();
        channel.queueDeclare(QUEUE_NAME, false, false, false, null);

        String message = "Hello, RabbitMQ!";
        channel.basicPublish("", QUEUE_NAME, null, message.getBytes(StandardCharsets.UTF_8));
        System.out.println("Send '" + message + "'");

        channel.close();
        connection.close();
    }
}

操作の結果は次のようになります。

Send 'Hello, RabbitMQ!'

3) メッセージ受信者

package com.miracle.luna.rabbitmq;

import com.rabbitmq.client.*;

import java.io.IOException;
import java.nio.charset.StandardCharsets;

/**
 * @author Miracle Luna
 * @date 2021/10/19
 */
public class RecvMQ {
    
    
    private final static String QUEUE_NAME = "hello";

    public static void main(String[] args) throws Exception{
    
    
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("localhost");
        factory.setPort(5672);
        factory.setUsername("guest");
        factory.setPassword("guest");

        final Connection connection = factory.newConnection();
        final Channel channel = connection.createChannel();
        channel.queueDeclare(QUEUE_NAME, false, false, false, null);

        System.out.println("Waiting for messages...");

        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, StandardCharsets.UTF_8);
                System.out.println("Received '" + message + "'");
            }
        };

        channel.basicConsume(QUEUE_NAME, true, consumer);
    }
}

操作の結果は次のようになります。

Waiting for messages...
Received 'Hello, RabbitMQ!'

[キュー] タブですべてのキュー内のメッセージの数を確認できます。
ここに画像の説明を挿入


4. 共通コマンド

1) ユーザー リストの表示: Rabbitmqctl list_users
2) 新しいユーザーの追加: Rabbitmqctl add_user root パスワード
3) ユーザーの削除: Rabbitmqctl delete_user test
4) ユーザー パスワードの変更: Rabbitmqctl change_password root 123456
5) 管理者ロールの付与: Rabbitmqctl set_user_tags root adminstrator
6 ) ユーザー権限の付与: Rabbitmqctl set_permissions -p / root "." "." ".*"
7) キューリストの表示: Rabbitmqctl list_queues
8) キューの削除: Rabbitmqctl delete_queue test
9) リセット (パスワードを忘れた場合は、適用してリセットしますが、データは失われます。使用には注意してください!!!):
Rabbitmqctl stop_app
Rabbitmqctl リセット
Rabbitmqctl start_app



おすすめ

転載: blog.csdn.net/aikudexiaohai/article/details/131655627