4.2. 주소 집합에 주소 설정 적용
AMQ Broker에서는 와일드카드 표현식을 사용하여 일치하는 주소 이름을 나타내는 방법으로 address-setting
요소에 지정된 구성을 주소 집합에 적용할 수 있습니다.
다음 섹션에서는 와일드카드 표현식을 사용하는 방법에 대해 설명합니다.
4.2.1. AMQ Broker 와일드카드 구문
AMQ Broker는 주소 설정에서 와일드카드를 나타내는 데 특정 구문을 사용합니다. 또한 보안 설정과 소비자를 생성할 때 와일드카드를 사용할 수도 있습니다.
-
와일드카드 식에는 마침표(
.
.)로 구분된 단어가 포함됩니다. 숫자 기호(
#
) 및 별표(*
) 문자도 특별한 의미가 있으며 다음과 같이 단어 대신 사용할 수 있습니다.- 숫자 부호 문자는 "0개 이상의 단어 시퀀스와 일치"를 나타냅니다. 표현식의 끝에서 이를 사용합니다.
- 별표 문자는 "단일 단어와 일치"를 나타냅니다. 이 방법은 표현식 내에서 어디에서나 사용하십시오.
일치는 문자별로 수행되는 문자가 아니라 각 구분자 경계에서 수행됩니다. 예를 들어 이름에 있는 내 대기열과 일치하도록 구성된 address-setting
요소는
라는 큐와 일치하지 않습니다.
my
queue
둘 이상의 address-setting
요소가 주소와 일치하는 경우 브로커는 가장 구체적인 구성을 기준선으로 사용하여 구성을 오버레이합니다. 리터럴 표현식은 와일드카드보다 더 구체적이며 별표(*
)는 숫자 기호(#
)보다 더 구체적입니다. 예를 들어 my.destination
과 my.*
둘 다 my.destination
주소와 일치합니다. 이 경우 브로커는 먼저 my.*
아래에 있는 구성을 적용합니다. 와일드카드 표현식은 리터럴보다 덜 구체적이기 때문입니다. 다음으로 브로커는 my.destination
주소 설정 요소의 구성을 오버레이하여 my.*
와 공유하는 모든 구성을 덮어씁니다. 예를 들어 다음 구성에 따라 my.destination
과 연결된 큐에 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.destination"> <last-value-queue>false</last-value-queue> </address-setting>
다음 표의 예제에서는 주소 집합과 일치하도록 와일드카드를 사용하는 방법을 보여줍니다.
예제 | 설명 |
---|---|
|
|
|
|
|
|
|
|
4.2.2. 브로커 와일드카드 구문 구성
다음 절차에서는 와일드카드 주소에 사용되는 구문을 사용자 지정하는 방법을 보여줍니다.
절차
-
<
;broker_instance_dir> /etc/broker.xml
구성 파일을 엽니다. 아래 예제
와 같이 <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
-
기본값 대신
구분자
로 사용할 사용자 지정 문자를 제공합니다.
any-words
-
any-words
의 값으로 제공되는 문자는 ''match any sequence of zero or more words' and will replace the default#
. 표현식 끝에 이 문자를 사용합니다. single-word
-
단일어의 값으로 제공되는 문자는 '
단일 단어
'를 의미하고 기본값*
을 대체하는 데 사용됩니다. 이 문자는 표현식 내에서 어디에서나 사용하십시오.