メッセージエクスチェンジに対するルールを設定することによるメッセージの転送

Anypoint MQ には、​インテリジェントなメッセージルーティングルール​を作成してエクスチェンジにパブリッシュされたメッセージのサブセットを特定のキューに転送する機能が含まれています。

メッセージルーティングルールはエクスチェンジに対するバインドで設定します。 メッセージをエクスチェンジにパブリッシュすると、ルールに一致するプロパティまたはヘッダーがメッセージに含まれている場合のみ、メッセージルーティングルールによってメッセージがキューに転送されます。

メッセージルーティングルールが設定されていないバインドでは、引き続きエクスチェンジからすべてのメッセージが受信されます。
エクスチェンジのバインドに対するルーティングルール

たとえば、中サイズの品目のすべての注文を処理するキューとプレミアム品目用の別のキューを指定する必要がある場合もあります。

エクスチェンジにパブリッシュされたメッセージを特定のキューに転送する手順は、次のとおりです。

  1. エクスチェンジとキュー間のバインドに対するメッセージルーティングルールを定義します。

    エクスチェンジに対するバインドごとに 1 つのメッセージルーティングルールを設定します。 Anypoint MQ では、設定されたメッセージルーティングルールは、パブリッシュされたメッセージのすべての ​headers​ および ​properties​ 属性に対して評価されます。

  2. メッセージで ​properties​ と ​headers​ を定義して絞り込み条件を指定します。

    次のメッセージを ​purchases​ エクスチェンジにパブリッシュすると、エクスチェンジはルーティングルール設定に基づいて ​premiumPurchases​ キューのみに転送し、​sizeMedium​ キューには転送しません。

    {
        "headers" : {
            "itemSize" : "large"
        },
        "body" : "User added an item to the cart"
    }

メッセージルーティングルールを作成する

メッセージルーティングルールを作成する手順は、次のとおりです。

  1. Anypoint Platform にログインします。

  2. ナビゲーション領域または Anypoint Platform のメイン画面で ​[MQ]​ をクリックします。

  3. [Destinations (宛先)]​ をクリックし、ルールを設定するエクスチェンジの名前をクリックします。

  4. [Exchange Settings (エクスチェンジ設定)]​ ページで、​[Add Rule (ルールを追加)]​ をクリックしてバインドされたキューにルールを追加します。

    [Exchange Settings (エクスチェンジ設定)] ページの [Add Rule (ルールを追加)] ボタン
  5. [Create Routing Rule (ルーティングルールを作成)]​ ページの項目に入力します。

    [Create Routing Rule (ルーティングルールを作成)] ページ
    • プロパティ名と照合する値を指定します。

    • プロパティ種別ごとに、​マッチャー種別​を指定します。

  6. [Add Rule (ルールを追加)]​ をクリックします。

メッセージルーティングルールを変更する

メッセージルーティングルールを変更する手順は、次のとおりです。

  1. Anypoint Platform にログインします。

  2. ナビゲーション領域または Anypoint Platform のメイン画面で ​[MQ]​ をクリックします。

  3. [Destinations (宛先)]​ をクリックし、ルールを設定するエクスチェンジの名前をクリックします。

  4. [Exchange Settings (エクスチェンジ設定)]​ ページで、​[Edit Rule (ルールを編集)]​ をクリックしてバインドされたキューでルールを変更します。

    [Exchange Settings (エクスチェンジ設定)] ページの [Edit Rule (ルールを編集)] ボタン
  5. [Edit Routing Rule (ルーティングルールを編集)]​ ページで、ルール設定を変更します。

    プロパティ種別とマッチャー種別についての詳細は、「​マッチャー種別​」を参照してください。

  6. [Save Rule (ルールを保存)]​ をクリックします。

メッセージルーティングルールを削除する

メッセージルーティングルールを削除する手順は、次のとおりです。

  1. Anypoint Platform にログインします。

  2. ナビゲーション領域または Anypoint Platform のメイン画面で ​[MQ]​ をクリックします。

  3. [Destinations (宛先)]​ をクリックし、ルールを設定するエクスチェンジの名前をクリックします。

  4. [Exchange Settings (エクスチェンジ設定)]​ ページで ​[Delete Rule (ルールを削除)]​ をクリックします。

    [Exchange Settings (エクスチェンジ設定)] ページの [Delete Rule (ルールを削除)] ボタン
  5. [Delete Routing Rule (ルーティングルールを削除)]​ 確認ボックスで、チェックボックスをオンにして ​[Delete Routing Rule (ルーティングルールを削除)]​ をクリックし、ルールを削除することを確認します。

Anypoint Admin API を使用したメッセージルーティングルールの作成または変更

Anypoint MQ Admin API を使用したメッセージルーティングルールの管理についての詳細は、​「Create or Change Message Routing Rules (メッセージルーティングルールの作成または変更)」​を参照してください。

マッチャー種別

プロパティ種別 マッチャー種別 説明

String (文字列)

Equals (等しい)

メッセージプロパティ値がこのルールの値の完全一致である。

Prefix (プレフィックス)

メッセージプロパティ値の先頭がこのルールの値である。

Any of (次のいずれかである)

メッセージプロパティ値がこのルールの値のいずれかと一致する。

None of (次のいずれでもない)

メッセージプロパティ値がこのルールの値のいずれにも一致しない。

Exists

このルールに含まれるプロパティ名に一致する名前のプロパティがメッセージに含まれる。

Number (数値)

Equals (等しい)

メッセージプロパティ値がこのルールの値に等しい。

Less than (より小さい)

メッセージプロパティ値がこのルールの値より小さい。

Less than or equal (以下)

メッセージプロパティ値がこのルールの値以下である。

Greater than (より大きい)

メッセージプロパティ値がこのルールの値より大きい。

Greater than or equal (以上)

メッセージプロパティ値がこのルールの値以上である。

Range (範囲)

メッセージプロパティ値がこのルールで指定された値の両端を含む範囲内にある。

None of (次のいずれでもない)

メッセージプロパティ値がこのルールの値のいずれにも一致しない。

Exists

このルールに含まれるプロパティ名に一致する名前のプロパティがメッセージに含まれる。

プロパティ値では、数値ピリオド値の小数点表記としてピリオド (.) 文字 (カンマ (,) 文字ではない) がサポートされます。

数値プロパティ値に基づくルーティングルールを作成し、Anypoint MQ Connector を使用してメッセージをパブリッシュする場合、Anypoint MQ Connector バージョン 3.2.0 以降にアップグレードする必要があります。 これより前のバージョンのコネクタでは、すべてのプロパティ値が文字列として送信されるため、メッセージは数値プロパティに基づくルーティングルールに一致しません。

ルーティングプロパティを使用したメッセージの送信

メッセージをエクスチェンジに送信して特定のキューに転送するには、次のいずれかを使用します。

パブリッシュされたメッセージでルーティングプロパティを表示する手順は、次のとおりです。

  1. エクスチェンジの ​[Message Sender (メッセージ送信者)]​ ページで、エクスチェンジにバインドされているキューの ​[View Messages (メッセージを表示)]​ をクリックします。

    Anypoint MQ に選択したキューの ​[Message Browser (メッセージブラウザー)]​ ページが表示されます。

  2. [Get Messages (メッセージを取得)]​ をクリックします。

  3. メッセージ行をクリックして、ユーザープロパティを含むメッセージペイロードを詳細ペインに表示します。

    [Message Browser (メッセージブラウザー)] ページでのユーザープロパティの表示

    「キューからのメッセージの取得」​を参照してください。

要件と制限事項

数値プロパティ値に基づくルーティングルールを作成し、Anypoint MQ Connector を使用してメッセージをパブリッシュする場合、Anypoint MQ Connector バージョン 3.2.0 以降にアップグレードする必要があります。 これより前のバージョンのコネクタでは、すべてのプロパティ値が文字列として送信されるため、メッセージは数値プロパティに基づくルーティングルールに一致しません。

Anypoint MQ ではメッセージルーティングルールをサポートしていますが、次の制限事項があります。

  • エクスチェンジのキューのバインドは 10 個以下である必要があります。

    メッセージルーティングルールが定義されたエクスチェンジには、最大 10 件のキューをバインドできます。 エクスチェンジに 10 件を超えるキューのバインドがある場合、インテリジェントなメッセージルーティングは使用できません。

  • メッセージルーティングルールは 1 つのプロパティに対してのみ設定でき、次の制限事項があります。

    • プロパティ名の最大サイズは 180 バイトです。

    • プロパティ値の最大サイズは 45 KB です。

  • ルーティングルールのプロパティ値には空白、英数字 (a-z、A-Z、0-9)、句読点 (@ ! & | # $ % - _ : ; , . ') 文字を含めることができます。

Anypoint MQ では、次の条件を満たす場合のみルーティングルールに対してメッセージを評価します。

  • ヘッダーとプロパティの合計数が 500 個未満である。

    この合計には、Anypoint MQ が作成する ​messageId​ や ​createdTimestamp​ などの操作ヘッダーが含まれます。

  • ヘッダーとプロパティの最大合計サイズが 215 KB である。

メッセージがこれらの条件を満たさない場合、Anypoint MQ ではメッセージルーティングルールに対してメッセージを評価するときにヘッダーとプロパティを無視します。

Anypoint MQ ではペイロードでヘッダーとプロパティが保持され、メッセージをエクスチェンジにパブリッシュするときに、ヘッダーとプロパティを比較に使用できます。