ApsaraMQ for RocketMQでは、SpringフレームワークをApsaraMQ for RocketMQ SDK for Javaと統合し、SDKを使用してメッセージを送受信できます。 このトピックでは、ApsaraMQ for RocketMQが提供するSpring統合デモプロジェクトの使用方法について説明します。
背景情報
ApsaraMQ for RocketMQでは、Springを次のタイプのプロデューサーおよびコンシューマーと統合できます。
通常のメッセージの作成者と消費者
トランザクションメッセージの作成者と消費者
注文されたメッセージの作成者と消費者
ApsaraMQ for RocketMQは、スケジュールされたメッセージと遅延メッセージを送受信するためのSpringとの統合をサポートしていません。
準備
JDK 1.8以降がインストールされます。 詳細については、「Javaダウンロード」をご参照ください。
Maven 2.5以降がインストールされています。 詳細については、「Apache Mavenのダウンロード」をご参照ください。
IntelliJ IDEAがインストールされています。 IntelliJ IDEAをダウンロードするには、ダウンロードページをご覧ください。
ステップ1: デモプロジェクトをダウンロードする
ApsaraMQ for RocketMQには、Spring BootとSpringの2つのデモがあります。 このトピックでは、例としてSpringBootのデモを使用します。 Springのデモを使用する操作も同様です。
ステップ2: リソースの作成
ApsaraMQ for RocketMQコンソールで必要なリソースを作成します。 以下の項目は、対応するセクションへのリンクを提供します。
トピックを作成する場合、トピックのメッセージタイプは、送信するメッセージのタイプと同じである必要があります。 たとえば、通常のメッセージを送信する場合は、通常のメッセージタイプのトピックを作成する必要があります。 順序付きメッセージを送信する場合は、順序付きメッセージタイプのトピックを作成する必要があります。
グループのプロトコルタイプは、SDKのプロトコルタイプと同じである必要があります。 Sping統合ApsaraMQ for RocketMQ Java SDKはTCPプロトコルを使用します。 したがって、グループIDを作成するときは、TCPプロトコルを選択する必要があります。
Spring統合ApsaraMQ for RocketMQ Java SDKはTCPプロトコルを使用します。 したがって、TCPエンドポイントを取得する必要があります。
手順3: デモプロジェクトの設定
IntelliJ IDEAでJavaプロジェクトを作成し、手順1: デモプロジェクトのダウンロードで取得したデモファイルをインポートして、次の操作を実行します。
pom.xmlファイルの変更
次のコードスニペットは、pom.xmlファイルに追加される依存関係を示しています。 ons-clientのバージョンを最新バージョンに変更することを推奨します。 バージョンの詳細については、「リリースノート」をご参照ください。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.aliyun.openservices</groupId>
<artifactId>ons-client</artifactId>
<version>1.8.8.8.Final</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
パラメーターの設定
手順2: リソースの作成のリソース情報に基づいて、java-springboot-demo/src/main/resourcesパスのapplication.propertiesファイルを変更します。
パラメーター | 説明 | 例 |
accessKey | AccessKey ID。Alibaba CloudでIDを検証するための識別子です。 このパラメーターは、クライアントの権限を制御するために使用されます。 | LTAI5t6K7KY ****** VjAY3yS |
secretKey | AccessKey Secretは、Alibaba CloudでIDを検証するためのキーです。 このパラメーターは、クライアントの権限を制御するために使用されます。 | P6z2pkIKAZ ******* n61JZ5e1lofFG9 |
nameSrvAddr | ApsaraMQ for RocketMQインスタンスのTCPエンドポイント。 ユーザーはエンドポイントを使用してApsaraMQ for RocketMQブローカーにアクセスします。 | http:// MQ_INST_XXXXXX.cn-hangzhou.mq.aliyuncs.com:80 |
topic | メッセージを送信するためにコンソールで作成したトピック。 | noamal_topic |
groupId | メッセージをサブスクライブするためにコンソールで作成したグループID。 | GID_test |
tag | メッセージのサブスクライブに使用されるフィルター式。 たとえば、「 * 」は、コンシューマが指定されたトピック内のすべてのメッセージをサブスクライブすることを示します。 "Tag A | | タグB" は、コンシューマがトピック内のタグAとBを持つメッセージをサブスクライブすることを示します。 詳細については、「メッセージのフィルタリング」をご参照ください。 | * |
orderTopic | 順序付けられたメッセージを送信するためにコンソールで作成したトピック。 | order_topic |
orderGroupId | 注文されたメッセージをサブスクライブするためにコンソールで作成したグループID。 | GID_order |
orderTag | 順序付けられたメッセージをサブスクライブするために使用されるフィルター式。 詳細については、「メッセージのフィルタリング」をご参照ください。 | tagA |
ステップ4: main() メソッドを呼び出してデモプロジェクトを実行する
サンプルコードを実行するときは、java-springboot-demo/src/main/java/com/aliyun/openservices/springboot/exampleパスのクラスがプロジェクトにインポートされていることを確認してください。
メッセージタイプ | 送信メッセージのサンプルコード | メッセージのサブスクライブのサンプルコード |
通常のメッセージ |
|
|
注文メッセージ | ||
トランザクションメッセージ |