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

ApsaraMQ for RocketMQ:デモプロジェクト

最終更新日:Jul 09, 2024

このトピックでは、TCPクライアントSDK for Javaを使用してApsaraMQ for RocketMQテストプロジェクトを構築する方法について説明します。 デモプロジェクトでは、通常のメッセージ、順序付けられたメッセージ、トランザクションメッセージ、スケジュールされたメッセージ、遅延メッセージのサンプルコードを提供します。 デモプロジェクトでは、テスト用のSpring構成も提供します。

前提条件

  • 統合開発環境 (IDE) がインストールされています。

    IntelliJ IDEAまたはEclipseを使用できます。 このトピックの例では、IntelliJ IDEAを使用しています。

    IntelliJ IDEA Ultimate Editionがダウンロードされ、インストールされていることを確認します。 詳細については、ダウンロードページをご覧ください。

  • デモプロジェクトパッケージがダウンロードされます。

    デモプロジェクトパッケージをダウンロードし、ローカルマシンに解凍します。 rocketmq-demo-masterという名前のフォルダが作成されます。 このフォルダーには、Java、Spring、およびSpring Bootのサンプルコードが含まれています。 詳細については、「rocketmq-demo」をご参照ください。

  • Java Development Kit (JDK) がインストールされています。 詳細については、「Javaダウンロード」をご参照ください。

デモプロジェクトの設定

  1. デモプロジェクトファイルをIntelliJ IDEAにインポートします。

  2. リソースを作成します。

    Message Queue for Apache RocketMQコンソールに移動し、インスタンス、トピック、コンシューマーグループ、AccessKey ID (AK) 、AccessKey secret (SK) などのリソースを作成します。

    詳細については、「リソースの作成」 をご参照ください。

  3. デモを構成します。

    手順2で作成したリソースに関する情報に基づいて、MqConfigクラスとcommon.xmlファイルを設定します。

    1. pom.xmlファイルを変更します。 TCPクライアントSDK for Javaのバージョンを最新バージョンに変更することを推奨します。 SDKのバージョンについては、「リリースノート」をご参照ください。

      <dependency>
          <groupId>com.aliyun.openservices</groupId>
          <artifactId>ons-client</artifactId>
          <!--We recommend that you replace the following version number with the latest version number of the TCP client SDK for Java-->
          <version>1.8.8.5.Final</version>
      </dependency>                            
    2. 次のサンプルコードを参照して、MqConfigクラスを設定します。

      public static final String TOPIC = "The topic that you created";
      public static final String GROUP_ID = "The consumer group that you created";
      public static final String ORDER_TOPIC = "The topic that you created to send and receive ordered messages";
      public static final String GROUP_ID = "The consumer group that you created to send and receive ordered messages";
      public static final String ACCESS_KEY = "The AccessKey ID of your Alibaba Cloud account". For information about how to obtain an AccessKey ID, see Create an AccessKey pair";
      public static final String SECRET_KEY = "The AccessKey secret of your Alibaba Cloud account. For information about how to obtain an AccessKey secret, see Create an AccessKey pair";
      public static final String TAG = "The custom tag of the message";
      public static final String NAMESRV_ADDR = "The TCP endpoint that can be used to access your Message Queue for Apache RocketMQ instance. You can view the endpoint in the TCP Endpoint section of the Instance Details page in the Message Queue for Apache RocketMQ console;                              
      説明
      • 作成したトピックに対する権限を付与されたRAMユーザーのAccessKeyペアを使用することもできます。

      • 詳細については、「メソッドとパラメーター」をご参照ください。

    3. common.xmlファイルを設定します。

      <props>
          <prop key="AccessKey">XXX</prop> <!-- Modify the values based on your resources. -->
          <prop key="SecretKey">XXX</prop>
          <prop key="GROUP_ID">XXX</prop>
          <prop key="Topic">XXX</prop>
          <prop key="NAMESRV_ADDR">XXX</prop>
      </props>

mainメソッドを呼び出してデモを実行する

  1. メッセージを送信します。

    • 通常のメッセージを送信する:

      • Java: SimpleMQProducerクラスを実行します。

      • Spring: ProducerClientクラスを実行します。

      • Spring Boot: ProducerClientクラスを実行します。

    • トランザクションメッセージの送信:

      • Java: SimpleTransactionProducerクラスを実行します。

        LocalTransactionCheckerImplクラスは、ローカルトランザクションのステータスを確認するために使用されます。 詳細については、「トランザクションメッセージの送受信」をご参照ください。

      • Spring: TransactionProducerClientクラスを実行します。

      • Spring Boot: TransactionProducerClientクラスを実行します。

    • 注文メッセージを送信する:

      • Java: SimpleOrderProducerクラスを実行します。

      • Spring: OrderProducerClientクラスを実行します。

      • Spring Boot: OrderProducerClientクラスを実行します。

      順序付けられたメッセージは、先入れ先出し (FIFO) 順序で送信され、消費される。 詳細については、「順序付けられたメッセージの送信とサブスクライブ」をご参照ください。

    • スケジュール済みメッセージと遅延済みメッセージの送信: MQTimerProducerクラスを実行します。 メッセージは3秒の遅延後に配信されます。

      これらのメッセージを配信する遅延時間を指定することもできます。 遅延時間の最大値は40日です。 詳細については、「スケジュールされたメッセージの送受信」をご参照ください。

    ApsaraMQ for RocketMQコンソールで、トピックごとにメッセージを照会します。 メッセージがトピックに送信されたことを確認できます。

  2. メッセージを受信します。

    • 通常のメッセージを受信する:

      • Java: SimpleMQConsumerクラスを実行します。

      • Spring: ConsumerClientクラスを実行します。

      • Spring Boot: ConsumerClientクラスを実行します。

    • トランザクションメッセージの受信:

      • Java: SimpleMQConsumerクラスを実行します。

      • Spring: ConsumerClientクラスを実行します。

      • Spring Boot: ConsumerClientクラスを実行します。

    • 注文メッセージを受信する:

      • Java: SimpleOrderConsumerクラスを実行します。

      • Spring: OrderConsumerClientクラスを実行します。

      • Spring Boot: OrderConsumerClientクラスを実行します。

    • スケジュール済みメッセージと遅延済みメッセージの受信: SimpleMQConsumerクラスを実行します。

      説明

      SpringおよびSpring Bootは、スケジュールおよび遅延メッセージの送信をサポートしていません。

    ログが印刷されます。 ログは、メッセージが受信されたことを示す。 クラスの初期化を完了するには数秒かかります。 本番環境では、クラスの初期化はめったに行われません。

結果の確認: ApsaraMQ for RocketMQコンソールでコンシューマーのステータスを表示します。 開始したコンシューマーがオンラインで、同じトピックを購読していることがわかります。

関連ドキュメント