ApsaraMQ for RocketMQ は、メッセージ ID、メッセージキー、および Topic の 3 つの方法でメッセージをクエリする機能を提供します。この機能を使用して、メッセージが正常に送信されたかどうかを確認したり、メッセージの内容を検証したり、メッセージトレースを表示したりできます。
クエリメソッド
デフォルトでは、メッセージは ApsaraMQ for RocketMQ に 3 日間保存されます。つまり、過去 3 日以内に送信されたメッセージのみをクエリできます。たとえば、現在の時刻が 2019 年 6 月 10 日 15:09:48 の場合、Topic でクエリできる最も古いメッセージは 2019 年 6 月 7 日 15:09:48 に送信されたものです。
次の表に、3 つのクエリメソッドの比較を示します。
クエリメソッド | クエリ条件 | クエリタイプ | 説明 |
メッセージ ID によるクエリ | Topic + メッセージ ID | 完全一致クエリ | Topic とメッセージ ID を指定して特定のメッセージを特定し、そのプロパティを取得します。 |
メッセージキーによるクエリ | Topic + メッセージキー | あいまいクエリ | Topic とメッセージキーを指定して、指定されたキーを含む最新の 64 件のメッセージを検索します。 重要 各メッセージに一意のキーを設定してください。これにより、同じキーを共有するメッセージが 64 件を超えないようにします。そうしないと、一部のメッセージがクエリ結果に表示されない場合があります。 |
Topic によるクエリ | Topic + 時間範囲 | 範囲クエリ | Topic と時間範囲を指定して、一致するすべてのメッセージを一括で取得します。このクエリは多くのメッセージを返す可能性があるため、特定のメッセージを見つけるのが困難になります。 |
推奨されるクエリプロセス
このプロセスに従ってメッセージをクエリします。

手順
ApsaraMQ for RocketMQ コンソールにログインします。左側のナビゲーションウィンドウで、インスタンスリスト をクリックします。
上部のメニューバーで、中国 (杭州) などのリージョンを選択します。
インスタンス数 ページで、ターゲットインスタンスを見つけます。操作 列で 詳細 をクリックし、ドロップダウンメニューから メッセージ検索 を選択します。
メッセージ検索 ページで、次のいずれかのクエリメソッドを選択し、プロンプトに従って必要な情報を入力してから、検索 をクリックしてメッセージを検索します。
Message ID から検索
メッセージ ID によるクエリは、完全一致クエリを実行します。Topic とメッセージ ID を入力して、特定のメッセージを検索できます。トラブルシューティングを簡素化するために、メッセージが送信された後にメッセージ ID をログに出力することをお勧めします。
次の Java SDK コードは、メッセージ ID を取得する方法を示しています。
SendResult sendResult = producer.send(msg); String msgId = sendResult.getMessageId();詳細については、「SDK リファレンス概要」をご参照ください。
Message Key から検索
ApsaraMQ for RocketMQ は、設定したメッセージキーに基づいてメッセージのインデックスを作成します。メッセージキーを使用してクエリを実行すると、ApsaraMQ for RocketMQ はこのインデックスを使用して一致するメッセージを検索して返します。
重要メッセージキーでクエリするには、メッセージを送信するときにメッセージキーのプロパティを設定する必要があります。
メッセージキーによるクエリは、一致する最新の 64 件のメッセージのみを返します。したがって、一意でビジネスメッセージを識別できるキーを設定してください。
次のコードは、メッセージキーを設定する方法を示しています。
Message msg = new Message("Topic","*","Hello MQ".getBytes()); /** * 各メッセージに検索キーを設定します。キーは、メッセージの重要なビジネス属性を表します。キーをできるだけグローバルに一意にします。 * これにより、期待どおりにメッセージを受信できない場合に、ApsaraMQ for RocketMQ コンソールでメッセージをクエリできます。キーを設定しなくても、通常のメッセージの送受信には影響しません。 */ msg.setKey("TestKey"+System.currentTimeMillis());トピックから検索
メッセージ ID とメッセージキーが利用できない場合は、Topic でクエリできます。Topic と時間範囲を指定して、その期間内に送信されたすべてのメッセージを取得します。その後、結果から必要なデータを見つけることができます。
重要Topic でメッセージをクエリする場合は、次の点に注意してください。
Topic によるクエリは、指定された時間範囲に一致する Topic 内のすべてのメッセージを取得する範囲クエリです。クエリのパフォーマンスを向上させるには、できるだけ短い時間範囲を指定してください。
多くのメッセージが返された場合、結果はページ分割されます。
クエリ結果の説明
コンソールの メッセージ検索 ページでクエリ結果を表示できます。結果リストには、各メッセージのメッセージ ID、タグ、キー、作成時間、および保存時間が表示されます。また、リストから メッセージトレースのクエリ、消費の検証、またはメッセージのダウンロードを行うこともできます。
消費の検証
ApsaraMQ for RocketMQ は、消費検証機能を提供します。この機能を使用すると、特定のメッセージを特定のオンラインクライアントにプッシュできます。これを使用して、クライアントの消費ロジックと結果が期待どおりであるかどうかを確認できます。
消費検証機能は、クライアントの消費ロジックのみを検証します。この機能は、メッセージ受信プロセスには影響しません。したがって、検証後もメッセージの消費ステータスやその他の関連情報は変更されません。
消費検証機能は、クライアントの消費ロジックのみを検証します。通常のメッセージ受信プロセスには影響しません。したがって、検証後もメッセージの消費ステータスやその他の情報は変更されません。

関連ドキュメント
クエリ結果から、メッセージトレース、消費ステータス、および消費結果を表示できます。詳細については、「メッセージトレースのクエリ」をご参照ください。