このトピックでは、ApsaraMQ for RocketMQ の機能と特徴について説明します。
背景情報
ApsaraMQ for RocketMQ は、複数のアリババクラウドリージョンで高可用性のメッセージ指向サービスを提供します。サービスの高可用性を確保するために、単一のリージョンに複数のデータセンターがデプロイされています。 1 つのデータセンターが使用できない場合でも、アプリケーションはメッセージをパブリッシュおよびサブスクライブできます。
ApsaraMQ for RocketMQ は、複数のプログラミング言語の SDK を使用した TCP ベースおよび HTTP ベースのアクセスをサポートしています。このようにして、さまざまなプログラミング言語のアプリケーションを ApsaraMQ for RocketMQ にすばやく接続できます。アプリケーションを Alibaba Cloud Elastic Compute Service (ECS) インスタンスまたは独自のエンタープライズクラウドにデプロイするか、モバイルデバイスまたは IoT デバイスに組み込んで、ApsaraMQ for RocketMQ に接続してメッセージを送受信できます。さらに、ローカルの開発者はインターネット経由で ApsaraMQ for RocketMQ にアクセスして、メッセージを送受信できます。
マルチプロトコルアクセス
TCP: TCP ベースの SDK アクセスモードは、HTTP ベースのアクセスモードよりも専門的で、信頼性が高く、安定しています。 ApsaraMQ for RocketMQ は、TCP 経由で Java、C、C++、および .NET のプログラミング言語を使用するクライアントをサポートしています。
HTTP: RESTful API は HTTP ベースのアクセスに使用されます。このモードは使いやすく、強力なクロスネットワークアクセス機能を提供します。 ApsaraMQ for RocketMQ は、HTTP 経由で Java、C++、.NET、Go、Python、Node.js、および PHP のプログラミング言語を使用するクライアントをサポートしています。
管理ツール
メッセージタイプ
標準メッセージ
標準メッセージとは、ApsaraMQ for RocketMQ に特別な機能がないメッセージです。スケジュールメッセージ、遅延メッセージ、順序付きメッセージ、トランザクションメッセージなどの特別な機能を持つメッセージとは異なります。
スケジュールメッセージと遅延メッセージ
ApsaraMQ for RocketMQ では、プロデューサーは特定の時点または特定の期間が経過した後にメッセージを配信できます。最大期間は 40 日です。
順序付きメッセージ
ApsaraMQ for RocketMQ では、コンシューマーは配信された順序でメッセージを消費できます。
トランザクションメッセージ
ApsaraMQ for RocketMQ は、X/Open XA に類似した分散トランザクション機能を提供し、分散トランザクションの最終的なトランザクション整合性を確保します。
表 1. メッセージタイプの比較
メッセージタイプ | 信頼性の高い同期送信のサポート | 信頼性の高い非同期送信のサポート | 一方向送信のサポート | マルチスレッド送信のサポート | パフォーマンス |
標準メッセージ | はい | はい | はい | はい | 最高 |
トランザクションメッセージ | |||||
スケジュールメッセージと遅延メッセージ | |||||
パーティション順序付きメッセージ | はい | いいえ | いいえ | いいえ | 高 |
メッセージ機能
メッセージリトライ: コンシューマーがメッセージリトライのレスポンスを返した後、ApsaraMQ for RocketMQ は、指定されたリトライルールに基づいてメッセージを再配信します。詳細については、「メッセージリトライ」をご参照ください。
少なくとも 1 回の配信: ApsaraMQ for RocketMQ は、各メッセージが少なくとも 1 回は消費されることを保証します。ApsaraMQ for RocketMQ は分散アーキテクチャに基づいて開発され、動的ネットワークを使用しているため、コンシューマーは同じメッセージを複数回受信する可能性があります。コンシューマーがアプリケーションを再起動すると、同じメッセージを複数回受信する可能性があります。アプリケーションは、エラーやデータの不整合を引き起こすことなく、同じメッセージを複数回処理する必要があります。メッセージのべき等性に関するベストプラクティスについては、「メッセージのべき等性」をご参照ください。
メッセージフィルタリング: ApsaraMQ for RocketMQ では、ApsaraMQ for RocketMQ ブローカーのトピックにプロデューサーが送信するメッセージを分類するために、メッセージ属性を設定できます。コンシューマーがトピック内の特定の属性を持つメッセージをサブスクライブできるように、コンシューマーのフィルター条件を設定できます。その後、ブローカーはプロデューサーによって送信されたメッセージをフィルタリングし、指定された条件を満たすメッセージのみをコンシューマーに配信します。
メッセージの特徴
メッセージクエリ: ApsaraMQ for RocketMQ では、メッセージ ID、メッセージキー、およびトピックでメッセージをクエリできます。
メッセーストレースクエリ: メッセーストレースは、プロデューサーから ApsaraMQ for RocketMQ ブローカーに送信され、次にコンシューマーに送信されるメッセージに関するルーティング情報を記録します。メッセーストレースは、問題のトラブルシューティングに役立ちます。
クラスタリング消費とブロードキャスト消費: クラスタリング消費モードでは、メッセージはクラスタ内のコンシューマーの 1 つによってのみ処理される必要があります。ブロードキャスト消費モードでは、ApsaraMQ for RocketMQ は各メッセージをクラスタ内のすべての登録済みコンシューマーにプッシュして、すべてのメッセージが各コンシューマーによって少なくとも 1 回は消費されるようにします。
コンシューマーオフセットのリセット: オフセットを最新のメッセージに変更して、コンシューマーの累積メッセージをスキップできます。また、コンシューマーの以前の時点の対応するオフセットにオフセットを変更することもできます。消費は、指定したオフセットから開始されます。
デッドレターキュー: 予期したとおりに消費できないメッセージは、後続の処理のためにデッドレターキューと呼ばれる特別なキューに格納されます。
ダッシュボード: ダッシュボード機能は、豊富で包括的、かつ多次元の統計メトリックを提供します。インスタンス、トピック、およびグループ別に、メッセージの生成、消費、および累積に関連するメトリックを表示できます。
監視とアラート: ApsaraMQ for RocketMQ の監視とアラート機能を使用して、グループがサブスクライブするトピックのメッセージ消費ステータスを監視し、アラートメッセージを受信できます。これにより、メッセージの消費ステータスをリアルタイムで監視し、エラーをタイムリーに解決できます。