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