Spring または Spring Boot アプリケーション内で、ApsaraMQ for RocketMQ SDK for Java を使用してメッセージを送信および受信します。
ApsaraMQ for RocketMQ では、ons-client SDK を Spring 管理 Bean に統合するデモプロジェクトを提供しています。これにより、依存関係の注入(DI)が可能なプロデューサーおよびコンシューマーコンポーネントをすぐに利用できます。本ガイドでは、Spring Boot デモを手順に沿って説明します。通常の Spring デモも同様のパターンに従います。
サポートされるメッセージタイプ
Spring 連携機能では、以下のメッセージタイプに対応したプロデューサーおよびコンシューマーが利用可能です:
通常メッセージ
順序付きメッセージ
トランザクションメッセージ
Spring 連携機能では、スケジュールされたメッセージおよび遅延メッセージはサポートされていません。
前提条件
開始する前に、以下の環境が整っていることを確認してください。
IntelliJ IDEA またはその他の Java IDE
TCP エンドポイントを持つ ApsaraMQ for RocketMQ インスタンス
AccessKey ペア(AccessKey ID および AccessKey Secret)
ステップ 1:デモプロジェクトのダウンロード
GitHub から以下のいずれかのデモプロジェクトをクローンまたはダウンロードします。
| デモ | リポジトリ |
|---|---|
| Spring Boot(本ガイドで使用) | java-springboot-demo |
| Spring | java-spring-demo |
ステップ 2:リソースの作成
ApsaraMQ for RocketMQコンソールで、以下のリソースを作成します。
インスタンスの作成を行います。
トピックの作成を行います。送信予定のメッセージタイプに合わせてメッセージタイプを設定します。たとえば、通常メッセージの場合は 通常 を、順序付きメッセージの場合は 順序付き を選択します。
グループの作成を行います。ons-client SDK は TCP を介して通信するため、プロトコルタイプとして TCP を選択します。
インスタンスの TCP エンドポイントの取得を行います。
ステップ 3:デモプロジェクトの設定
IntelliJ IDEA でデモプロジェクトを開き、Maven の依存関係およびアプリケーションプロパティを更新します。
ons-client 依存関係の追加
次の依存関係を 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>アプリケーションプロパティの設定
java-springboot-demo/src/main/resources/application.properties を、ステップ 2 で取得したリソース情報を使用して編集します。
パラメーター | 説明 | 例 |
| 認証用の AccessKey ID |
|
| 認証用の AccessKey Secret |
|
| ApsaraMQ for RocketMQ インスタンスの TCP エンドポイント |
|
| 通常メッセージ用のトピック名 |
|
| コンシューマー用のグループ ID |
|
| タグフィルター式。すべてのメッセージをサブスクライブするには |
|
| 順序付きメッセージ用のトピック名 |
|
| 順序付きメッセージ用コンシューマーのグループ ID |
|
| 順序付きメッセージ用のタグフィルター式 |
|
ステップ 4:デモの実行
java-springboot-demo/src/main/java/com/aliyun/openservices/springboot/example 配下のクラスがプロジェクトに正しくインポートされていることを確認し、main() メソッドを実行します。
サンプルコードのリファレンス
デモには、各サポート対象メッセージタイプ向けのプロデューサーおよびコンシューマーが含まれています。すべてのソースコードは GitHub 上で公開されています。
通常メッセージ
| 役割 | クラス |
|---|---|
| プロデューサー | ProducerClient.java |
| 同期送信 | SyncProducerTest.java |
| 非同期送信 | AsyncProducerTest.java |
| コンシューマー(タグベースのフィルタリング) | ConsumerClient.java |
| コンシューマー(SQL ベースのフィルタリング) | SqlConsumerClient.java |
順序付きメッセージ
| 役割 | クラス |
|---|---|
| プロデューサー | OrderProducerClient.java |
| コンシューマー | OrderConsumerClient.java |
トランザクションメッセージ
| 役割 | クラス |
|---|---|
| プロデューサー | TransactionProducerClient.java |
| コンシューマー | ConsumerClient.java |
次のステップ
メッセージフィルタリング — タグまたは SQL 式によるメッセージのフィルタリング
リリースノート — 最新の ons-client SDK バージョンを確認