4.13.2. dead letter 큐 자동 생성
일반적인 사용 사례는 원래 주소에 따라 배달되지 않은 메시지를 분리하는 것입니다. 예를 들어, 재고라는 주소에서 DLA.
라는 관련 dead letter 큐가 있는 배달 못 한 큐로 전송되지 않은 메시지를 라우팅 s
tocks하도록
선택할 수 있습니다. 마찬가지로, 주문
이라는 주소에서 DLA.orders
라는 dead letter 주소로 배달되지 않은 메시지를 라우팅할 수 있습니다.
이러한 유형의 라우팅 패턴을 사용하면 배달되지 않은 메시지를 쉽게 추적, 검사 및 관리할 수 있습니다. 그러나 이러한 패턴은 주로 생성된 주소 및 대기열을 사용하는 환경에서 구현하기 어렵습니다. 이러한 유형의 환경에 대한 시스템 관리자는 배달되지 않은 메시지를 저장하기 위해 수동으로 주소 및 큐를 수동으로 생성하는 데 필요한 추가 노력을 원하지 않을 수 있습니다.
해결 방법으로 다음 절차에 표시된 대로 주소 및 큐를 자동으로 생성하여 배달되지 않은 메시지를 처리하도록 브로커를 구성할 수 있습니다.
사전 요구 사항
- 큐 또는 큐 세트의 dead letter 주소를 이미 구성했습니다. 자세한 내용은 4.13.1절. “dead letter 주소 구성”의 내용을 참조하십시오.
절차
-
<
broker-instance-dir> /etc/broker.xml
구성 파일을 엽니다. 일치하는 큐 또는 큐 세트에 대한 dead letter
주소를 정의하기 위해 이전에 추가한 <address-setting
> 요소를 찾습니다. 예를 들면 다음과 같습니다.<configuration ...> <core ...> ... <address-settings> ... <address-setting match="exampleQueue"> <dead-letter-address>DLA</dead-letter-address> <max-delivery-attempts>3</max-delivery-attempts> </address-setting> ... <address-settings> <configuration ...>
<
address-setting
> 요소에서 브로커에 배달 못 한 문자 리소스(즉, 주소 및 큐)를 자동으로 생성하고 이러한 리소스의 이름을 지정하는 방법을 브로커에 지시하는 구성 항목을 추가합니다. 예를 들면 다음과 같습니다.<configuration ...> <core ...> ... <address-settings> ... <address-setting match="exampleQueue"> <dead-letter-address>DLA</dead-letter-address> <max-delivery-attempts>3</max-delivery-attempts> <auto-create-dead-letter-resources>true</auto-create-dead-letter-resources> <dead-letter-queue-prefix>DLQ.</dead-letter-queue-prefix> <dead-letter-queue-suffix></dead-letter-queue-suffix> </address-setting> ... <address-settings> <configuration ...>
auto-create-dead-letter-resources
브로커가 배달되지 않은 메시지를 수신할 배달 못 한 주소 및 큐를 자동으로 생성할지 여부를 지정합니다. 기본값은
false
입니다.auto-create-dead-letter-resources
가true
로 설정된 경우 브로커는 dead letter주소
와 관련 dead letter 큐를 정의하는 <address> 요소를 자동으로 생성합니다. 자동으로 생성된 <address
> 요소의 이름은 <dead-letter-address
>에 지정하는 name 값과 일치합니다.브로커가 자동 생성된 <
address
> 요소에서 정의하는 dead letter 큐에는멀티캐스트
라우팅 유형이 있습니다. 기본적으로 브로커는 배달되지 않은 메시지의 원래 주소와 일치하도록 dead letter 큐의 이름을 지정합니다(예:stocks
).브로커는 또한
_AMQ_ORIG_ADDRESS
속성을 사용하는 dead letter 큐에 대한 필터를 정의합니다. 이 필터를 사용하면 dead letter queue가 해당 원래 주소로 전송된 메시지만 수신됩니다.dead-letter-queue-prefix
브로커가 자동으로 생성된 배달 못 한 큐의 이름에 적용되는 접두사입니다. 기본값은
DLQ입니다.
접두사 값을 정의하거나 기본값을 유지할 때 dead letter queue의 이름은 접두사와 원래 주소(예:
DLQ.stocks
)의 연결입니다.dead-letter-queue-suffix
- 브로커가 자동으로 생성된 dead letter 큐에 적용되는 접미사입니다. 기본값은 정의되지 않습니다(즉, 브로커는 접미사가 적용되지 않음).