ホームページ >Java >&#&チュートリアル >Java API 開発における非同期メッセージ処理に RabbitMQ2 を使用する
Java API 開発プロセスでは、非同期メッセージ処理は非常に一般的なテクノロジです。非同期メッセージ処理により、システムの応答速度が向上し、システムのスケーラビリティが向上します。
RabbitMQ は、オープン ソースのメッセージ キュー システムであり、シンプルで信頼性の高いメッセージ配信メカニズムを提供し、分散システムで広く使用されています。 Java API 開発では、非同期メッセージ処理に RabbitMQ を使用すると多くの利点があります。この記事では、RabbitMQ2 を使用して非同期メッセージ処理を行う方法を紹介します。
RabbitMQ2 の使用を開始する前に、次の準備を行う必要があります。
1.1 RabbitMQ のインストール
RabbitMQ は Erlang に基づいて書かれているため、最初に Erlang をインストールする必要があります。 Erlang の最新バージョンを https://www.erlang.org/downloads からダウンロードし、インストール ウィザードに従ってインストールできます。
Erlang をインストールした後、RabbitMQ をインストールできます。 RabbitMQ インストール パッケージは https://www.rabbitmq.com/download.html からダウンロードし、インストール ウィザードに従ってインストールできます。
RabbitMQ をインストールした後、RabbitMQ サービスを開始する必要があります。 Linux/Mac システムでは、次のコマンドを実行して RabbitMQ サービスを開始できます:
sudo Rabbitmq-server
Windows システムでは、rabbitmq-server.bat は RabbitMQ インストールにあります。ディレクトリ.ファイルをダブルクリックして、RabbitMQ サービスを開始します。
1.2 RabbitMQ2 依存関係の導入
非同期メッセージ処理に RabbitMQ2 を使用するには、RabbitMQ2 依存関係を導入する必要があります。プロジェクトの pom.xml ファイルを開いて、b4b38e33757a6497aa8690936b905cc1 タグの下に次のコンテンツを追加できます:
b4b38e33757a6497aa8690936b905cc1
<groupId>com.rabbitmq</groupId> <artifactId>rabbitmq-client</artifactId> <version>5.5.1</version>
09a0e22e5aaafd848ae04665be625b91
RabbitMQ2 を非同期メッセージ処理に使用し始める前に、RabbitMQ2 のいくつかの基本概念を理解する必要があります。
2.1 プロデューサー
プロデューサーはメッセージのプロデューサーであり、RabbitMQ サーバーにメッセージを送信する責任があります。
2.2 Consumer
Consumer はメッセージのコンシューマであり、RabbitMQ サーバーからメッセージを受信して処理する責任があります。
2.3 Exchange
Exchange はメッセージ交換であり、プロデューサーによって送信されたメッセージを受信し、メッセージを対応するキューにルーティングするために使用されます。
2.4 キュー
キューはメッセージのキューであり、メッセージを保存するために使用されます。
2.5 RoutingKey
RoutingKey はメッセージのルーティング キーで、Exchange から対応するキューにメッセージをルーティングするために使用されます。
RabbitMQ2 の基本概念を理解したら、非同期メッセージ処理に RabbitMQ2 の使用を開始できます。ここでは、RabbitMQ2 を使用して非同期メッセージ処理を行う方法を紹介します。
3.1 RabbitMQ サーバーへの接続
RabbitMQ2 を使用して非同期メッセージ処理を行う前に、まず RabbitMQ サーバーに接続する必要があります。次のコードを使用して接続できます:
ConnectionFactory Factory = new ConnectionFactory();
factory.setHost("localhost");
factory.setPort(5672);
factory。 setUsername( "guest");
factory.setPassword("guest");
Connection connection = Factory.newConnection();
上記のコードでは、ConnectionFactory を使用して接続を作成します。 RabbitMQ サーバー。このうち、setHost は RabbitMQ サーバーのホスト名を設定し、setPort は RabbitMQ サーバーのポート番号を設定し、setUsername と setPassword はそれぞれ RabbitMQ サーバーに接続するときのユーザー名とパスワードを設定します。
3.2 メッセージの送信
RabbitMQ サーバーに正常に接続したら、メッセージの送信を開始できます。次のコードを使用してメッセージを送信できます:
Channel channel = connection.createChannel();
channel.queueDeclare("queue_name", false, false, false, null);
channel。 BasicPublish(" ", "queue_name", null, "message".getBytes());
channel.close();
上記のコードでは、connection.createChannel() を使用してチャンネルチャンネル。キューの宣言は、channel.queueDeclare() メソッドによって完了できます。メソッドの最初のパラメータはキューの名前です。2 番目のパラメータは、キューが永続化されるかどうかを示します。3 番目のパラメータは、キューが排他的かどうかを示します。 4 番目のパラメータはキューを自動的に削除するかどうかを示し、5 番目のパラメータはキューの属性です。
メッセージは、channel.basicPublish() メソッドを通じて送信されます。最初のパラメータは、Exchange の名前を表します。空の文字列を渡して、デフォルトの Exchange を使用することを示すことができます。2 番目のパラメータは、RoutingKey を表し、次のことを示しますどのキューでは、3 番目のパラメータはメッセージの属性を表し、null を渡すことができ、4 番目のパラメータはメッセージの内容を表します。
3.3 メッセージの受信
メッセージを送信した後、次のコードを使用してメッセージを受信できます:
Channel channel = connection.createChannel();
channel .queueDeclare(" queue_name", false, false, false, null);
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("Received: " + message); }
};
channel.basicConsume("queue_name", true, Consumer);
上記のコードでは、connection.createChannel() メソッドは、Channel チャネルの作成にも使用されます。 Queue の宣言も、channel.queueDeclare() メソッドを使用して行われます。 DefaultConsumer オブジェクトを作成してメッセージ処理メソッドを指定します。メッセージの受信時に handleDeliver() メソッドが呼び出され、メッセージはこのメソッドで処理される必要があります。
メッセージの受信は、channel.basicConsume() メソッドによって完了します。最初のパラメータは、どのキューからメッセージを受信するかを示します。2 番目のパラメータは、メッセージの受信を自動的に確認するかどうかを示します。3 番目のパラメータは、 Consumer オブジェクト。メッセージの処理方法を示します。
上記は、RabbitMQ2 を使用して非同期メッセージ処理を行う基本的なプロセスです。 RabbitMQ2 を使用すると、非同期メッセージ処理が非常に便利になり、システムの応答速度と拡張性が向上します。
以上がJava API 開発における非同期メッセージ処理に RabbitMQ2 を使用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。