ホームページ  >  記事  >  Java  >  Java API 開発における非同期メッセージ処理に RabbitMQ2 を使用する

Java API 開発における非同期メッセージ処理に RabbitMQ2 を使用する

WBOY
WBOYオリジナル
2023-06-19 08:21:091028ブラウズ

Java API 開発プロセスでは、非同期メッセージ処理は非常に一般的なテクノロジです。非同期メッセージ処理により、システムの応答速度が向上し、システムのスケーラビリティが向上します。

RabbitMQ は、オープン ソースのメッセージ キュー システムであり、シンプルで信頼性の高いメッセージ配信メカニズムを提供し、分散システムで広く使用されています。 Java API 開発では、非同期メッセージ処理に RabbitMQ を使用すると多くの利点があります。この記事では、RabbitMQ2 を使用して非同期メッセージ処理を行う方法を紹介します。

  1. 前提条件

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

  1. RabbitMQ2 の基本概念の概要

RabbitMQ2 を非同期メッセージ処理に使用し始める前に、RabbitMQ2 のいくつかの基本概念を理解する必要があります。

2.1 プロデューサー

プロデューサーはメッセージのプロデューサーであり、RabbitMQ サーバーにメッセージを送信する責任があります。

2.2 Consumer

Consumer はメッセージのコンシューマであり、RabbitMQ サーバーからメッセージを受信して​​処理する責任があります。

2.3 Exchange

Exchange はメッセージ交換であり、プロデューサーによって送信されたメッセージを受信し、メッセージを対応するキューにルーティングするために使用されます。

2.4 キュー

キューはメッセージのキューであり、メッセージを保存するために使用されます。

2.5 RoutingKey

RoutingKey はメッセージのルーティング キーで、Exchange から対応するキューにメッセージをルーティングするために使用されます。

  1. RabbitMQ2 の使用

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。