すべてのプロダクト
Search
ドキュメントセンター

ApsaraMQ for RocketMQ:スプリングとの統合

最終更新日:Jul 24, 2024

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エンドポイントを取得する必要があります。

  • AccessKeyペアの作成

手順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パスのクラスがプロジェクトにインポートされていることを確認してください。

メッセージタイプ

送信メッセージのサンプルコード

メッセージのサブスクライブのサンプルコード

通常のメッセージ

ProducerClient.java

注文メッセージ

OrderProducerClient.java

OrderConsumerClient.java

トランザクションメッセージ

TransactionProducerClient.java

ConsumerClient.java