4.17. アドレスの設定

AMQ Broker には、メッセージの配信方法と時期、試行回数、およびメッセージの有効期限を制御する設定可能なオプションがいくつかあります。これらの設定オプションはすべて、<address-setting> 設定要素内に存在します。ワイルドカード構文を使用して、AMQ Broker に単一の <address-setting> を複数の宛先に適用させることができます。

AMQ Broker ワイルドカード構文

AMQ Broker は、セキュリティー設定、アドレス設定、およびコンシューマーの作成時に、ワイルドカードを表すために特定の構文を使用します。

  • ワイルドカード式には、. 文字で区切られた単語が含まれます。
  • 特殊文字 #* にも特別な意味があり、単語の代わりになることがあります。
  • 文字 # は、0 個以上の単語のシーケンスとマッチします。式の最後に使用します。
  • 文字 * は 1 つの単語とマッチします。式内のどこかにこの変数を使用します。

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

キューに複数の address-setting がマッチする場合、ブローカーは、ベースラインとして最も合致の少ない設定を使用して設定をオーバーレイします。リテラル式はワイルドカードよりも限定的であり、*# よりも限定的です。たとえば、my.queuemy.* の両方がキュー my.queue に一致します。この場合、ワイルドカード式はリテラルよりも具体的なため、ブローカーは最初に my.* にある設定を適用します。次に、ブローカーは my.queue address-setting の設定をオーバーレイし、my.* と共有される設定が上書きされます。以下の設定では、キュー my.queuemax-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.queue">
    <last-value-queue>false</last-value-queue>
</address-setting>

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

表4.3 ワイルドカードの例

説明

#

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 は一致しない。

ワイルドカード構文の設定

設定を broker.xml に追加することで、ワイルドカードアドレスに使用される構文をカスタマイズできます。

手順

  • 以下の例のように、設定に <wildcard-addresses> セクションを追加して、broker.xml を編集します。
<configuration>
  <core>
    ...
    <wildcard-addresses> 1
      <enabled>true</enabled> 2
      <delimiter>,</delimiter> 3
      <any-words>@</any-words> 4
      <single-word>$</single-word> 5
    </wildcard-addresses>
    ...
  </core>
</configuration>
1
コア 設定要素の下に ワイルドカードアドレス を追加します。
2
ブローカーにカスタム設定を使用するように指示するには、enabledtrue に設定します。
3
デフォルトの . の代わりに delimiter として使用するカスタム文字を指定します 。
4
any-words の値として提供された文字は、ゼロ以上の単語のシーケンスに一致し、デフォルトの # を置き換えます。式の最後にこの文字を使用します。
5
single-word の値として提供された文字は、単一の単語の照合に使用され、デフォルトの * を置き換えます。この文字は式内の任意の場所を使用します。