4.2. アドレスセットへのアドレス設定の適用
AMQ Broker では、ワイルドカード式を使用して一致するアドレス名を表すことで、address-setting 要素に指定された設定をアドレスセットに適用することができます。
以下のセクションでは、ワイルドカード式の使用方法を説明します。
4.2.1. AMQ Broker ワイルドカード構文 リンクのコピーリンクがクリップボードにコピーされました!
AMQ Broker は、アドレス設定でワイルドカードを表す特定の構文を使用します。ワイルドカードは、セキュリティー設定やコンシューマーの作成時に使用することもできます。
-
ワイルドカード式には、ピリオド (
.) で区切られた単語が含まれます。 数字記号 (
#) およびアスタリスク (*) 文字には特別な意味があり、以下のように単語の代わりに使用できます。- 数字記号は、"ゼロ以上の単語のシーケンスの一致" を意味します。式の最後に使用します。
- アスタリスク文字は、"単一の単語の一致" を意味します。式内のどこかにこの変数を使用します。
マッチングは文字による文字は実行されませんが、各区切り文字境界では文字ごとに一致します。たとえば、名前に my を持つキューと一致するよう設定された address-setting 要素は、myqueue という名前のキューと 一致しません。
複数の address-setting 要素がアドレスと一致する場合、ブローカーオーバーレイ設定は、ベースラインとして最も具体的な一致の設定を使用します。リテラル式はワイルドカードより固有で、アスタリスク (*) は数値記号 (#) より具体的なものです。たとえば、my.destination と my.* の両方がアドレス my.destination と一致します。この場合、ワイルドカード式はリテラルよりも具体的なため、ブローカーは最初に my.* にある設定を適用します。次に、ブローカーは my.destination アドレス設定要素の設定をオーバーレイし、my.* と共有される設定を上書きします。たとえば、以下の設定では、my .destination に関連付けられたキューは max-delivery-attempts を 3 に設定し、last-value-queue を false に設定します。
以下の表に示す例は、ワイルドカードを使用してアドレスセットを照合する方法を示しています。
| 例 | 説明 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
4.2.2. リテラル一致の設定 リンクのコピーリンクがクリップボードにコピーされました!
リテラル一致では、ワイルドカード文字はリテラル文字として扱われ、ワイルドカードを含むアドレスと一致します。たとえば、リテラル一致のハッシュ (#) 文字は、orders.# というアドレスと一致します。orders.retail や orders.wholesale などのアドレスとは一致しません。
手順
-
<broker_instance_dir>/etc/broker.xml設定ファイルを開きます。 リテラル一致を設定する前に、
literal-match-markersパラメーターを使用して、リテラル一致を区切る文字を定義します。次の例では、括弧を使用してリテラル一致を区切ります。<core> ... <literal-match-markers>()</literal-match-markers> ... </core>
<core> ... <literal-match-markers>()</literal-match-markers> ... </core>Copy to Clipboard Copied! Toggle word wrap Toggle overflow リテラル一致を区切るマーカーを定義した後、
address setting matchパラメーターで、マーカーを含む一致を指定します。次の例では、orders.#というアドレスのリテラル一致を設定して、このアドレスのメトリクスを有効にします。<address-settings> <address-setting match="(orders.#)"> <enable-metrics>true</enable-metrics> </address-setting> </address-settings><address-settings> <address-setting match="(orders.#)"> <enable-metrics>true</enable-metrics> </address-setting> </address-settings>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.3. ブローカーのワイルドカード構文の設定 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順では、ワイルドカードアドレスに使用される構文をカスタマイズする方法を説明します。
手順
-
<broker_instance_dir>/etc/broker.xml設定ファイルを開きます。 以下の例のように、
<wildcard-addresses>セクションを設定に追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow enabled-
trueに設定すると、カスタム設定を使用するようにブローカーに指示します。 delimiter-
デフォルトの
.の代わりにdelimiterとして使用するカスタム文字を指定します 。 any-words-
any-wordsの値として提供される文字は、'0 個以上の任意の単語のシーケンスに一致する' という意味で使用され、デフォルトの#を置き換えます。式の最後にこの文字を使用します。 single-word-
single-wordの値として指定された文字は、'単一の単語に一致する' という意味で使用され、デフォルトの*を置き換えます。この文字は式内の任意の場所を使用します。