4.17. アドレスの設定
AMQ Broker には、メッセージの配信方法と時期、試行回数、およびメッセージの有効期限を制御する設定可能なオプションがいくつかあります。これらの設定オプションはすべて、<address-setting>
設定要素内に存在します。ワイルドカード構文を使用して、AMQ Broker に単一の <address-setting>
を複数の宛先に適用させることができます。
AMQ Broker ワイルドカード構文
AMQ Broker は、セキュリティー設定、アドレス設定、およびコンシューマーの作成時に、ワイルドカードを表すために特定の構文を使用します。
- ワイルドカード式には、「.」 文字で区切られた単語が含まれます。
- 特殊文字 「#」 と 「*」 にも特別な意味があり、単語の代わりになることがあります。
- 文字 「#」 は、0 個以上の単語のシーケンスとマッチします。式の最後に使用します。
- 文字 「*」 は 1 つの単語とマッチします。式内のどこかにこの変数を使用します。
マッチングは文字による文字は実行されませんが、各区切り文字境界では文字ごとに一致します。たとえば、名前に my
を使用してキューを照合しようとする address-setting
は、myqueue
という名前のキューとは一致しません。
キューに複数の address-setting
がマッチする場合、ブローカーは、ベースラインとして最も合致の少ない設定を使用して設定をオーバーレイします。リテラル式はワイルドカードよりも限定的であり、*
は #
よりも限定的です。たとえば、my.queue
と my.*
の両方がキュー my.queue
に一致します。この場合、ワイルドカード式はリテラルよりも具体的なため、ブローカーは最初に my.*
にある設定を適用します。次に、ブローカーは my.queue
address-setting
の設定をオーバーレイし、my.*
と共有される設定が上書きされます。以下の設定では、キュー my.queue
の max-delivery-attempts
が 3
に設定され、last-value-queue
が false
に設定されます。
<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>
以下の表の例は、ワイルドカードを使用してアドレスセットを照合する方法を示しています。
例 | 説明 |
---|---|
# |
|
news.europe.# |
|
news.* |
|
news.*.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>