ApsaraMQ for RocketMQでは、トピックとタグの両方がビジネスにおけるメッセージ分類の識別子です。 違いは、トピックが第1レベルの分類であり、タグが第2レベルの分類であることです。 このトピックでは、トピックとタグを使用してメッセージをフィルタリングする方法について説明します。
背景
ApsaraMQ forRocketMQのトピックとタグは次のように定義されます。
トピック
- ビジネスメッセージを分類するために使用されるメッセージトピック。
タグ
- メッセージタグは、プロデューサから送信されたメッセージの属性であり、トピックの下でメッセージをさらに分類するために使用されます。
トピックとタグの関係を次の図に示します。

シナリオ
いつトピックを使うべきか、いつタグを使うべきか疑問に思うかもしれません。
次の項目に基づいてトピックまたはタグを選択することを推奨します。
- メッセージタイプの整合性: 通常メッセージ、トランザクションメッセージ、スケジュール済みメッセージ、順序付きメッセージなど、さまざまなタイプのメッセージに専用のトピックを使用します。 異なるタイプのメッセージはタグで分類できません。
- ビジネス関連付け: TaobaoトランザクションメッセージやJDロジスティクスメッセージなど、トピックを使用して、直接関連付けなしでメッセージを区別します。 タグを使用して、電気器具の注文、婦人服の注文、化粧品の注文に関するメッセージをTmallトランザクションメッセージに分類します。
- メッセージ優先度の一貫性: トピックを使用して、Hema (1時間配信) 物流メッセージ、Tmallスーパーマーケット (24時間配信) 物流メッセージ、Taobao (比較的遅い配信) 物流メッセージなどのメッセージを優先度で分類します。
- メッセージ量の等価性: 一部のビジネスのメッセージは少量であるが、高いリアルタイム要件を有する。 彼らが何兆ものメッセージでトピックを共有する場合、これらの企業は長い待ち時間のために「飢えて死ぬ」可能性があります。 したがって、異なる数量レベルのメッセージには異なるトピックを使用してください。
メッセージを分類するには、複数のトピックを作成するか、同じトピックの下に複数のタグを作成します。 しかし、一般に、異なるトピック内のメッセージ間には関係がなく、タグは、フルセットとサブセットとの間の関係、および順番のプロセス間の関係など、同じトピック内の関連するメッセージを区別するために使用される。
例:
Tmallトランザクションプラットフォームを例にとる。 注文メッセージと支払いメッセージは異なるビジネスタイプのものです。 したがって、Topic_OrderとTopic_Payをそれぞれ作成します。 次に、注文メッセージをタグ付きの製品カテゴリ、たとえば電化製品、紳士服、婦人服、化粧品でさらに分類して、専用システムを処理します。
トピックとタグを合理的に使用すると、ビジネス構造が明確になり、ビジネス効率が向上します。
タグを使用してメッセージをフィルタリングする方法の詳細については、「メッセージフィルタリング」をご参照ください。