ApsaraMQ for RocketMQでは、メッセージID、メッセージキー、およびトピックでメッセージをクエリできます。 メッセージクエリ機能を使用して、メッセージが送信されたかどうかの確認、メッセージの内容が正しいかどうかの確認、およびメッセージトレースデータの表示を行うことができます。
照会メソッド
次の表に、ApsaraMQ for RocketMQでメッセージのクエリに使用できるメソッドを示します。
照会方法 | クエリ条件 | クエリタイプ | 説明 |
メッセージID | トピック + メッセージID | 完全一致 | トピックとメッセージIDを指定して、完全に一致するメッセージを見つけ、対応する属性を取得できます。 |
メッセージキー | トピック + メッセージキー | ファジーマッチ | トピックとメッセージキーを指定して、トピック内で指定したキーを含む最新の64メッセージを取得できます。 |
トピック別 | トピック + 時間範囲 | レンジマッチ | トピック名と時間範囲を指定して、条件を満たすすべてのメッセージを取得できます。 このタイプのクエリは多数のメッセージを返します。このため、クエリするメッセージを見つけるのが難しくなります。 |
クエリメソッドを選択するための推奨プロセス
次のプロセスに基づいてクエリ方法を選択することを推奨します。

手順
ApsaraMQ for RocketMQコンソールにログインします。 左側のナビゲーションウィンドウで、インスタンス数 をクリックします。
上部のナビゲーションバーで、中国 (杭州) などのリージョンを選択します。 [インスタンス] ページで、管理するインスタンスの名前をクリックします。
左側のナビゲーションウィンドウで、メッセージ検索 をクリックします。
メッセージ検索 ページで、クエリ方法を選択し、画面の指示に従ってパラメーターを設定します。 続いて、検索 をクリックします。
Message ID から検索
メッセージIDでメッセージを照会する場合、完全一致が使用されます。 メッセージのトピックとIDを指定して、必要なメッセージを取得できます。 メッセージの送信時にメッセージIDをログに印刷することを推奨します。 これは問題のトラブルシューティングに役立ちます。
次のサンプルコードは、SDK for Javaを使用してメッセージIDを取得する方法の例を示しています。
SendResult sendResult = producer.send(msg); String msgId = sendResult.getMessageId();他のプログラミング言語のSDKを使用してメッセージIDを取得する方法については、「概要」をご参照ください。
Message Key から検索
メッセージキーでメッセージをクエリする場合、ApsaraMQ for RocketMQは、指定したメッセージキーに基づいてメッセージのインデックスを作成し、条件を満たすメッセージを返します。
重要メッセージが送信される前に、照会するメッセージにキーが指定されていることを確認してください。
指定されたキーを含む最新の64メッセージのみが返されます。 したがって、メッセージごとに一意で識別可能なキーを指定することをお勧めします。
次のサンプルコードは、メッセージキーの指定方法の例を示しています。
Message msg = new Message("Topic","*","Hello MQ".getBytes()); /** * Specify a key that is used for message query for each message. The key is the primary business attribute of a message. We recommend that you specify a globally unique key for each message. * If a message is not received as expected, you can query the message in the ApsaraMQ for RocketMQ console by using the message key. A message can be sent and received even if you do not specify a key for the message. */ msg.setKey("TestKey"+System.currentTimeMillis());トピックから検索
メッセージのIDとキーが使用できない場合は、トピックごとにメッセージを照会できます。 トピックとメッセージが送信される時間範囲を指定して、条件を満たすすべてのメッセージを取得できます。 次に、照会するメッセージを取得できます。
重要このクエリメソッドを使用すると、特定の時間範囲内にトピックで送信されたすべてのメッセージを取得できます。 クエリするメッセージを効率的に見つけるために、時間範囲を絞り込むことをお勧めします。
多数のメッセージが複数のページで返されます。
クエリの結果
クエリ結果で、クエリされた各メッセージのID、タグ、およびキーを表示できます。 メッセージトレースの照会、消費の確認、メッセージのダウンロードもできます。

メッセージのダウンロード
クエリ結果で、ダウンロードするメッセージを見つけて、操作 列の を選択します。
メッセージ消費の確認
ApsaraMQ for RocketMQは、メッセージ消費検証機能を提供します。 接続されているクライアントにメッセージをプッシュし、メッセージが期待どおりに消費されているかどうかを確認できます。
クエリ結果で、管理するメッセージを見つけて、[操作] 列の [消費確認] をクリックします。
表示されるパネルで、[グループID] および [クライアントID] パラメーターを設定し、[OK] をクリックします。

関連ドキュメント
クエリ結果に基づいて、メッセージのトレース、消費ステータス、消費結果を表示できます。 詳細については、「メッセージトレース」をご参照ください。
> [メッセージのダウンロード]