すべてのプロダクト
Search
ドキュメントセンター

ApsaraMQ for RocketMQ:メッセージの照会

最終更新日:Jul 10, 2024

ApsaraMQ for RocketMQでは、メッセージID、メッセージキー、およびトピックでメッセージをクエリできます。 メッセージクエリ機能を使用して、メッセージが送信されたかどうかの確認、メッセージの内容が正しいかどうかの確認、およびメッセージトレースデータの表示を行うことができます。

照会メソッド

デフォルトでは、メッセージはApsaraMQ for RocketMQに3日間保存されます。 現在のクエリ時刻の3日前に生成されたメッセージのみをクエリできます。 たとえば、現在の時刻が2019年6月10日15:09:48の場合、トピックで2019年6月7日15:09:48から生成されたメッセージを照会できます。 デフォルトのメッセージ保存期間は変更しないことを推奨します。

次の表は、クエリメソッドを比較しています。

移動方法

条件

データ型

説明

メッセージID

トピック + メッセージID

完全一致

トピックとメッセージIDを指定して、完全に一致するメッセージを見つけ、対応する属性を取得できます。

メッセージキー

トピック + メッセージキー

ファジーマッチ

トピックとメッセージキーを指定して、トピック内で指定したキーを含む最新の64メッセージを取得できます。

重要

同じキーを持つメッセージの数が64を超えないように、メッセージごとに一意のキーを指定することをお勧めします。 そうしないと、特定のメッセージがクエリで返されない場合があります。

トピック別

トピック + 時間範囲

レンジマッチ

トピック名と時間範囲を指定して、条件を満たすすべてのメッセージを取得できます。 このタイプのクエリは多数のメッセージを返します。このため、クエリするメッセージを見つけるのが難しくなります。

クエリメソッドを選択するための推奨プロセス

次のプロセスに基づいてクエリ方法を選択することを推奨します。

消息查询

手順

  1. ApsaraMQ for RocketMQコンソールにログインします。 左側のナビゲーションウィンドウで、インスタンスリスト をクリックします。

  2. 上部のナビゲーションバーで、中国 (杭州) などのリージョンを選択します。

  3. インスタンス数 ページで、管理するインスタンスを見つけ、操作 列の 詳細 をクリックし、ドロップダウンリストから メッセージ検索 を選択します。

  4. メッセージ検索 ページで、クエリ方法を選択し、画面の指示に従ってパラメーターを設定します。 続いて、検索 をクリックします。

    • 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とキーが使用できない場合は、トピックごとにメッセージを照会できます。 トピックとメッセージが送信される時間範囲を指定して、条件を満たすすべてのメッセージを取得できます。 次に、照会するメッセージを取得できます。

      重要

      トピックでメッセージをクエリする場合は、次の項目に注意してください。

      • このクエリメソッドを使用すると、特定の時間範囲内にトピックで送信されたすべてのメッセージを取得できます。 クエリするメッセージを効率的に見つけるために、時間範囲を絞り込むことをお勧めします。

      • 多数のメッセージが複数のページで返されます。

クエリの結果

クエリされたメッセージは、ApsaraMQ for RocketMQコンソールの メッセージ検索 ページで表示できます。 表示されるメッセージの情報には、メッセージID、タグ、キー、送信時刻、保存期間が含まれます。 ApsaraMQ for RocketMQコンソールで、メッセージトレースの照会、メッセージ消費の確認、メッセージのダウンロードを行うこともできます。 メッセージトレースの照会方法については、「メッセージトレースの照会」をご参照ください。

メッセージ消費の確認

ApsaraMQ for RocketMQは、メッセージ消費検証機能を提供します。 接続されているクライアントにメッセージをプッシュし、メッセージが期待どおりに消費されているかどうかを確認できます。

消費検証機能は、クライアントが期待されるロジックを使用してメッセージを消費できるかどうかを確認するためにのみ使用されます。 この機能はメッセージの受信には影響しません。 したがって、メッセージ消費状態などの情報は、メッセージ消費が検証された後も変化しない。

重要

消費検証機能は、クライアントが期待されるロジックを使用してメッセージを消費できるかどうかを確認するためにのみ使用されます。 この機能はメッセージの受信には影響しません。 したがって、メッセージ消費状態などの情報は、メッセージ消費が検証された後も変化しない。

consumer_vaildate

関連ドキュメント

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