このトピックでは、ApsaraMQ for RocketMQ で使用される用語について説明します。これは、ApsaraMQ for RocketMQ への理解を深め、ご活用いただくのに役立ちます。
トピック
トピックは、ApsaraMQ for RocketMQ におけるメッセージの送受信と保存のための最上位コンテナです。同一のビジネスカテゴリに属するメッセージを識別するために使用します。トピックは名前によって一意に識別されます。詳細については、「Topics」をご参照ください。
Lite トピック
トピックが Lite タイプの場合、その配下に Lite トピックを作成できます。メッセージの保存コンテナは、トピックと Lite トピックの組み合わせによって一意に識別されます。デフォルトでは、各保存コンテナは 1 つのキューで構成されています。詳細については、「Lite topic model」をご参照ください。
メッセージタイプ
メッセージタイプは、ApsaraMQ for RocketMQ において、転送特性に基づいてメッセージを分類したものです。メッセージタイプは、タイプ管理とセキュリティ検証に使用されます。ApsaraMQ for RocketMQ は、通常メッセージ、順序メッセージ、トランザクションメッセージ、およびスケジュール/遅延メッセージをサポートしています。
メッセージキュー
メッセージキューは、ApsaraMQ for RocketMQ においてメッセージを保存および転送するための実体コンテナであり、メッセージの最小の保存単位でもあります。ApsaraMQ for RocketMQ のすべてのトピックは複数のキューで構成されます。この設計により、キューの水平分割と、各キュー内でのストリーミング保存が可能になります。キューは QueueId によって一意に識別されます。詳細については、「Message queues」をご参照ください。
メッセージ
メッセージは、ApsaraMQ for RocketMQ におけるデータ転送の最小単位です。プロデューサーは、ビジネスデータのペイロードと拡張プロパティをメッセージにカプセル化し、ApsaraMQ for RocketMQ サーバーに送信します。その後、サーバーは関連するセマンティクスに基づき、処理のためにメッセージをコンシューマーに配信します。詳細については、「Messages」をご参照ください。
ApsaraMQ for RocketMQ のメッセージ ID はグローバルで一意であり、異なるトピック間でも重複しません。ただし、ネットワークの揺らぎや消費失敗時の再試行などのシナリオでは、同一メッセージが複数回配信される場合があります。メッセージ ID による重複排除に依存するのではなく、メッセージキーを使用して、コンシューマー側でべき等処理を実装してください。
ApsaraMQ for RocketMQ は、プロデューサーが送信したメッセージの内容 (フィールドの大文字小文字、形式、その他の属性を含む) を変更しません。メッセージ本文のデータは、送信されたときの状態のまま保持されます。
メッセージビュー
メッセージビューは、ApsaraMQ for RocketMQ が開発者向けに提供する読み取り専用インターフェイスです。メッセージビューを使用すると、メッセージの複数のプロパティとペイロードを読み取れますが、メッセージ自体は変更できません。
メッセージタグ
メッセージタグは、ApsaraMQ for RocketMQ においてメッセージをきめ細かく分類するためのプロパティです。トピック配下のメッセージをさらにサブカテゴリに分類できます。コンシューマーは、特定のタグをサブスクライブすることで、きめ細かなフィルタリングを行えます。詳細については、「Message filtering」をご参照ください。
メッセージオフセット
メッセージは、ApsaraMQ for RocketMQ サーバーに到着した順序で、トピックのキューに保存されます。キュー内の各メッセージには、一意の Long 型の座標があります。この座標がメッセージオフセットです。詳細については、「Consumer progress management」をご参照ください。
コンシューマーオフセット
メッセージは、消費された直後にキューから削除されるわけではありません。各コンシューマーグループについて、ApsaraMQ for RocketMQ は直近で消費されたメッセージのオフセットを記録します。この記録されたオフセットがコンシューマーオフセットです。詳細については、「Consumer progress management」をご参照ください。
メッセージキー
メッセージキーは、ApsaraMQ for RocketMQ が提供するメッセージのインデックスプロパティです。メッセージキーを設定すると、対応するメッセージ内容をすばやく検索できます。
プロデューサー
プロデューサーは、ApsaraMQ for RocketMQ システム内で動作し、メッセージを作成してサーバーに送信する実行エンティティです。プロデューサーは通常、業務システムに統合されます。業務データを ApsaraMQ for RocketMQ メッセージにカプセル化し、サーバーに送信します。詳細については、「Producers」をご参照ください。
トランザクションチェッカー
トランザクションチェッカーは、ApsaraMQ for RocketMQ において、プロデューサーがローカルトランザクションのチェックを実行し、異常なトランザクションから復旧するために使用するリスナーです。トランザクションチェッカーは、業務データの状態に基づいてトランザクションメッセージのトランザクション解決を確認して決定する必要があります。詳細については、「Transactional messages」をご参照ください。
トランザクション解決
トランザクション解決は、ApsaraMQ for RocketMQ における送信プロセス中のトランザクションメッセージのコミット状態を示す識別子です。サーバーはトランザクション解決を使用して、トランザクションメッセージをコミットして配信するかどうかを制御します。トランザクション解決には、コミット、ロールバック、および保留が含まれています。詳細については、「Transactional messages」をご参照ください。
コンシューマーグループ
コンシューマーグループは、ApsaraMQ for RocketMQ システムにおける負荷分散グループであり、同一の消費動作を行う複数のコンシューマーで構成されます。コンシューマーとは異なり、コンシューマーグループは実行エンティティではなく、論理リソースです。ApsaraMQ for RocketMQ では、コンシューマーグループ内に複数のコンシューマーを初期化することで、消費性能の水平スケーリングと高可用性のディザスタリカバリを実現できます。詳細については、「Consumer groups」をご参照ください。
コンシューマー
コンシューマーは、ApsaraMQ for RocketMQ においてメッセージを受信して処理する実行エンティティです。コンシューマーは通常、業務システムに統合されます。ApsaraMQ for RocketMQ サーバーからメッセージを取得し、業務ロジックで処理できる情報に変換して処理します。詳細については、「Consumers」をご参照ください。
メッセージのプッシュ方式は消費モードによって異なります。クラスター消費モードでは、メッセージはキュー単位で分配されます。同一キュー内のメッセージは直列に配信されますが、異なるキューのメッセージは並行してプッシュできます。ブロードキャスト消費モードでは、各メッセージがすべてのコンシューマーにプッシュされます。順序メッセージの場合、同一キュー内でメッセージが順序どおりに配信され、前のメッセージの処理が完了するまで次のメッセージは配信されません。
消費結果
消費結果は、PushConsumer のリスナーが ApsaraMQ for RocketMQ でメッセージの処理を完了した後に返す結果です。メッセージが正しく処理されたかどうかを示します。消費結果には、成功と失敗が含まれています。
サブスクリプション
サブスクリプションは、ApsaraMQ for RocketMQ システムにおいて、コンシューマーがメッセージを取得して処理する方法に関するルールと状態の設定です。サブスクリプションは、コンシューマーグループによってサーバーに動的に登録されます。その後のメッセージ転送では、サブスクリプションで定義されたフィルタリングルールが、メッセージのマッチングとコンシューマー進捗の管理に使用されます。詳細については、「Subscriptions」をご参照ください。
メッセージフィルタリング
コンシューマーは、特定のメッセージタグ (Tags) をサブスクライブすることでメッセージをフィルタリングし、フィルタリング後のメッセージセットのみを受信できます。フィルタリングルールの計算とマッチングは、ApsaraMQ for RocketMQ サーバー上で完了します。詳細については、「Message filtering」をご参照ください。
コンシューマーオフセットのリセット
この機能は、コンシューマーグループがサブスクライブしているトピックの消費進捗を特定の時点にリセットします。リセット後、コンシューマーは、指定した時点以降にプロデューサーが ApsaraMQ for RocketMQ サーバーに送信したメッセージを受信します。詳細については、「Reset consumer offsets」をご参照ください。
メッセージトレース
メッセージトレースは、メッセージの完全なリンク情報を提供します。この情報は、プロデューサーからコンシューマーへメッセージが移動する過程で、関連する各ノードから取得した時刻や場所などのデータを集約したものです。メッセージトレースにより、プロデューサーから ApsaraMQ for RocketMQ サーバーを経由してコンシューマーに至るまでのメッセージの完全な経路を明確に把握できます。これにより、トラブルシューティングと問題診断に役立ちます。
メッセージの蓄積
メッセージの蓄積は、プロデューサーが ApsaraMQ for RocketMQ サーバーに送信する速度が、コンシューマーの処理速度を上回る場合に発生します。未消費のメッセージは ApsaraMQ for RocketMQ サーバーに保存されます。
トランザクションメッセージ
トランザクションメッセージは、ApsaraMQ for RocketMQ が提供する高度なメッセージタイプです。分散シナリオにおいて、メッセージ生成とローカルトランザクションの結果整合性を保証します。
スケジュール/遅延メッセージ
スケジュール/遅延メッセージは、ApsaraMQ for RocketMQ が提供する高度なメッセージタイプです。メッセージがサーバーに送信された後、指定した時刻を過ぎてからのみコンシューマーが消費できます。特定の遅延時間を設定することで、分散シナリオにおける遅延スケジューリングやトリガーの効果を実現できます。
順序メッセージ
順序メッセージは、ApsaraMQ for RocketMQ が提供する高度なメッセージタイプです。コンシューマーが、送信された順序どおりにメッセージを受信できることを保証します。これにより、ビジネスシナリオでの順次処理が可能になります。
Lite メッセージ
Lite メッセージは、ApsaraMQ for RocketMQ が提供する高度なメッセージタイプです。数百万の Lite トピックを動的に作成でき、自動ライフサイクル管理や高性能サブスクリプションなどの機能を提供します。詳細については、「Lite topic model」をご参照ください。
よくある質問
VPC 間で ApsaraMQ for RocketMQ にアクセスする場合、内部エンドポイントはドメイン名と IP アドレスのどちらを使用すべきですか?
ApsaraMQ for RocketMQ コンソールで提供される VPC エンドポイントのドメイン名 (-vpc サフィックスが付いたドメイン) を使用してください。例:rmq-cn-ai54re6l701-vpc.cn-guangzhou.rmq.aliyuncs.com:8080。このドメインは内部ネットワークアクセス向けに設計されています。VPC ピアリング接続と適切なルーティングおよび DNS 設定と組み合わせることで、VPC 間の接続性を確保できます。IP アドレスを直接使用すると、接続に失敗する場合があります。
AWS SQS から ApsaraMQ for RocketMQ に移行する場合、何に注意すべきですか?
AWS SQS から ApsaraMQ for RocketMQ に移行する場合は、次の点に注意してください:
クライアントを gRPC SDK に対応させ、Namespace をインスタンス ID に設定してください。
インターネットトラフィック料金を回避するため、プライベートネットワークエンドポイントを使用してください。
メッセージサイズを 4 KB 以下に抑え、送受信オペレーション数を減らして、月あたり 2,000 万オペレーションの無料枠を最大限に活用してください。
Linux 向け RocketMQ ONS .NET SDK のダウンロード時に AccessDenied エラーが発生した場合はどうすればよいですか?
OSS の権限設定の問題により、公開ダウンロードリンクにアクセスできない場合があります。AccessDenied エラーが発生した場合は、期限切れの公開リンクを使用していないか確認してください。公式ドキュメントから最新の SDK ダウンロードリンクを取得するか、Alibaba Cloud SDK Center で該当バージョンを検索してください。
同一コンシューマーグループ内における Remoting プロトコルと gRPC プロトコルの同時処理能力の違いは何ですか?
同一コンシューマーグループ内では次のとおりです:
gRPC プロトコル (5.x):MessageGroup によってメッセージを異なるスレッドに分配し、並行消費を行えるため、スループットが向上します。この機能を使用するには、gRPC SDK バージョン 5.0.3 以降が必要です。
Remoting プロトコル (4.x):シングルスレッドの順次消費のみをサポートし、MessageGroup による並列処理はサポートしていません。
2 つのインスタンスを並行稼働させた場合、トピックとコンシューマーグループのリソースは分離されますか?メッセージが誤ってルーティングされることはありますか?
各インスタンスには一意のインスタンス ID があるため、インスタンス間でリソースは分離されます。メッセージが誤ってルーティングされることはありません。クライアント設定の PropertyKeyConst.NAMESRV_ADDR が、該当インスタンスの正しいエンドポイントを指している限り、異なるインスタンスで同名のトピックおよびコンシューマーグループが存在しても相互に干渉しません。
TCP エンドポイントと HTTP エンドポイントは相互に利用できますか?
いいえ。TCP エンドポイントと HTTP エンドポイントは相互に利用できません:
TCP SDK は TCP エンドポイントで設定する必要があります。
HTTP SDK は HTTP エンドポイントで設定する必要があります。
ons-client-2.0.6.Final (通常は TCP プロトコルで使用) については、リージョン固有の TCP エンドポイントアドレスを使用してください。