14.4. 메시지 재배포 활성화
브로커 클러스터가 ON_DEMAND
또는 OFF_WITH_REDISTRIBUTION
으로 설정된 메시지 로드 밸런싱
을 사용하여 구성된 경우 메시지를 사용하는 소비자가 없는 큐에서 메시지가 "최고"되지 않도록 메시지 재배포 를 구성할 수 있습니다.
이 섹션에는 다음에 대한 정보가 포함되어 있습니다.
14.4.1. 메시지 재배포 이해
브로커 클러스터는 로드 밸런싱을 사용하여 클러스터에 메시지 부하를 분산합니다. 클러스터 연결에서 로드 밸런싱을 구성할 때 다음 message-load-balancing
설정을 사용하여 재배포를 활성화할 수 있습니다.
-
ON_DEMAND
- 부하 분산을 활성화하고 재배포를 허용합니다. -
OFF_WITH_REDISTRIBUTION
- 부하 분산을 비활성화하지만 재배포 가능
두 경우 모두 브로커는 일치하는 소비자가있는 다른 브로커에게만 메시지를 전달합니다. 이 동작을 사용하면 메시지를 사용할 소비자가 없는 큐로 메시지가 이동되지 않습니다. 그러나 메시지가 브로커로 전달된 후 큐에 연결된 사용자가 닫히면 해당 메시지는 큐에서 "최고"되지 않습니다. 이 문제를 래비브레이팅(Vla vation )이라고 합니다.
메시지 재배포는 소비자가 일치하는 클러스터의 브로커에 대한 소비자가 없는 대기열에서 메시지를 자동으로 다시 배포하지 못하도록 합니다.
OFF_WITH_REDISTRIBUTION
을 사용하면 브로커는 활성 로컬 소비자가 없는 경우 일치하는 소비자를 가진 다른 브로커만 전달하여 소비자가 사용할 수 없을 때 대안을 제공하는 동시에 브로커에 우선 순위를 지정할 수 있습니다.
메시지 재배포는 필터의 사용을 지원합니다. 즉, 사용 가능한 로컬 소비자의 선택기와 일치하지 않을 때 메시지가 재배포됩니다.
추가 리소스
- 클러스터 로드 밸런싱에 대한 자세한 내용은 14.1.1절. “브로커 클러스터의 메시지 로드 밸런싱 방법” 을 참조하십시오.
14.4.2. 메시지 재배포 구성
다음 절차에서는 로드 밸런싱을 사용하여 메시지 재배포를 구성하는 방법을 설명합니다. 로드 밸런싱 없이 메시지를 재배포하려면 < message-load-balancing
>을 OFF_WITH_REDISTRIBUTION
으로 설정합니다.
절차
-
<
;broker_instance_dir> /etc/broker.xml
구성 파일을 엽니다. <
cluster-connection
> 요소에서 <message-load-balancing
>이ON_DEMAND
로 설정되어 있는지 확인합니다.<configuration> <core> ... <cluster-connections> <cluster-connection name="my-cluster"> ... <message-load-balancing>ON_DEMAND</message-load-balancing> ... </cluster-connection> </cluster-connections> </core> </configuration>
<
;address-settings&
gt; 요소 내에서 큐 또는 큐 집합에 대한 재분배 지연을 설정합니다.이 예에서는
my.queue
에 밸런싱된 메시지가 마지막 소비자가 종료된 후 5000밀리초 후에 재배포됩니다.<configuration> <core> ... <address-settings> <address-setting match="my.queue"> <redistribution-delay>5000</redistribution-delay> </address-setting> </address-settings> ... </core> </configuration>
address-setting
-
메시지를 재배포할 대기열의 이름으로
match
속성을 설정합니다. 브로커 와일드카드 구문을 사용하여 큐 범위를 지정할 수 있습니다. 자세한 내용은 4.2절. “주소 집합에 주소 설정 적용”의 내용을 참조하십시오. redistribution-delay
-
브로커가 클러스터의 다른 브로커에 메시지를 재배포하기 전에 이 큐의 최종 소비자가 종료한 후 대기해야 하는 시간(밀리초)입니다. 이 값을
0
으로 설정하면 메시지가 즉시 재배포됩니다. 그러나 일반적으로 redistributing 전에 지연을 설정해야 합니다. 소비자가 종료되지만 다른 하나는 동일한 큐에서 신속하게 생성되는 것이 일반적입니다.
- 클러스터의 추가 브로커 각각에 대해 이 절차를 반복합니다.
추가 리소스
-
메시지를 재배포하는 브로커 클러스터 구성의 예는
queue-message-redistribution
AMQ Broker 예제 프로그램을 참조하십시오.