4.2. アドレスセットへのアドレス設定の適用


AMQ Broker では、ワイルドカード式を使用して一致するアドレス名を表すことで、address-setting 要素に指定された設定をアドレスセットに適用することができます。

以下のセクションでは、ワイルドカード式の使用方法を説明します。

4.2.1. AMQ Broker ワイルドカード構文

AMQ Broker は、アドレス設定でワイルドカードを表す特定の構文を使用します。ワイルドカードは、セキュリティー設定やコンシューマーの作成時に使用することもできます。

  • ワイルドカード式には、ピリオド (.) で区切られた単語が含まれます。
  • 数字記号 (#) およびアスタリスク (*) 文字には特別な意味があり、以下のように単語の代わりに使用できます。

    • 数字記号は、"ゼロ以上の単語のシーケンスの一致" を意味します。式の最後に使用します。
    • アスタリスク文字は、"単一の単語の一致" を意味します。式内のどこかにこの変数を使用します。

マッチングは文字による文字は実行されませんが、各区切り文字境界では文字ごとに一致します。たとえば、名前に my を持つキューと一致するよう設定された address-setting 要素は、myqueue という名前のキューと 一致しません

複数の address-setting 要素がアドレスと一致する場合、ブローカーオーバーレイ設定は、ベースラインとして最も具体的な一致の設定を使用します。リテラル式はワイルドカードより固有で、アスタリスク (*) は数値記号 (#) より具体的なものです。たとえば、my.destinationmy.* の両方がアドレス my.destination と一致します。この場合、ワイルドカード式はリテラルよりも具体的なため、ブローカーは最初に my.* にある設定を適用します。次に、ブローカーは my.destination アドレス設定要素の設定をオーバーレイし、my.* と共有される設定を上書きします。たとえば、以下の設定では、my .destination に関連付けられたキューは max-delivery-attempts3 に設定し、last-value-queuefalse に設定します。

<address-setting match="my.*">
    <max-delivery-attempts>3</max-delivery-attempts>
    <last-value-queue>true</last-value-queue>
</address-setting>
<address-setting match="my.destination">
    <last-value-queue>false</last-value-queue>
</address-setting>

以下の表に示す例は、ワイルドカードを使用してアドレスセットを照合する方法を示しています。

表4.2 ワイルドカードを使用したアドレスのマッチング
説明

#

broker.xml で使用されるデフォルトの address-setting。すべてのアドレスに一致します。このキャッチオールを適用するか、必要に応じて各アドレスまたはアドレスグループに新しい address-setting を追加することができます。

news.europe.#

news.europenews.europe.sportnews.europe.politics.fr は一致するが、news.usaeurope は一致しない。

news.*

news.europenews.usa は一致するが、news.europe.sport は一致しない。

news.*.sport

news.europe.sportnews.usa.sport は一致するが、news.europe.fr.sport は一致しない。

4.2.2. リテラル一致の設定

リテラル一致では、ワイルドカード文字はリテラル文字として扱われ、ワイルドカードを含むアドレスと一致します。たとえば、リテラル一致のハッシュ (#) 文字は、orders.# というアドレスと一致します。orders.retailorders.wholesale などのアドレスとは一致しません。

手順

  1. <broker_instance_dir>/etc/broker.xml 設定ファイルを開きます。
  2. リテラル一致を設定する前に、literal-match-markers パラメーターを使用して、リテラル一致を区切る文字を定義します。次の例では、括弧を使用してリテラル一致を区切ります。

    <core>
       ...
       <literal-match-markers>()</literal-match-markers>
       ...
    </core>
  3. リテラル一致を区切るマーカーを定義した後、address setting match パラメーターで、マーカーを含む一致を指定します。次の例では、orders.# というアドレスのリテラル一致を設定して、このアドレスのメトリクスを有効にします。

    <address-settings>
       <address-setting match="(orders.#)">
          <enable-metrics>true</enable-metrics>
       </address-setting>
    </address-settings>

4.2.3. ブローカーのワイルドカード構文の設定

以下の手順では、ワイルドカードアドレスに使用される構文をカスタマイズする方法を説明します。

手順

  1. <broker_instance_dir>/etc/broker.xml 設定ファイルを開きます。
  2. 以下の例のように、<wildcard-addresses> セクションを設定に追加します。

    <configuration>
      <core>
        ...
        <wildcard-addresses> //
          <enabled>true</enabled> //
          <delimiter>,</delimiter> //
          <any-words>@</any-words> //
          <single-word>$</single-word>
        </wildcard-addresses>
        ...
      </core>
    </configuration>
    enabled
    true に設定すると、カスタム設定を使用するようにブローカーに指示します。
    delimiter
    デフォルトの . の代わりに delimiter として使用するカスタム文字を指定します 。
    any-words
    any-words の値として提供される文字は、'0 個以上の任意の単語のシーケンスに一致する' という意味で使用され、デフォルトの # を置き換えます。式の最後にこの文字を使用します。
    single-word
    single-word の値として指定された文字は、'単一の単語に一致する' という意味で使用され、デフォルトの * を置き換えます。この文字は式内の任意の場所を使用します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.