7.4. 멀티 캐스트 주소의 메모리 사용량 이해
메시지가 멀티 캐스트 큐가 바인딩된 주소로 라우팅되면 메모리에 메시지 사본이 하나만 있습니다. 각 큐에는 메시지에 대한 참조 만 있습니다. 이로 인해 연결된 메모리는 메시지를 참조하는 모든 큐가 제공한 후에만 해제됩니다.
이러한 유형의 상황에서 사용자가 느린 경우 전체 주소가 성능에 부정적인 영향을 미칠 수 있습니다.
예를 들어 다음 시나리오를 고려하십시오.
- 주소에는 멀티 캐스트 라우팅 유형을 사용하는 큐가 10개 있습니다.
- 소비자 속도가 느리기 때문에 대기열 중 하나가 메시지를 전달하지 않습니다. 나머지 9개의 대기열은 계속 메시지를 전달하며 비어 있습니다.
- 메시지는 주소에 계속 도달합니다. 느린 소비자가 있는 큐는 메시지에 대한 참조를 계속 누적하여 브로커가 메모리에 메시지를 보관하도록 합니다.
- 주소의 최대 크기에 도달하면 브로커가 페이지 메시지로 시작합니다.
이 시나리오에서는 속도가 느린 단일 소비자로 인해 모든 대기열의 소비자가 페이지 시스템의 메시지를 소비하도록 강제되며 추가 IO가 필요합니다.
추가 리소스
- 브로커와 생산자와 소비자 간의 데이터 흐름을 규제하기 위해 흐름 제어를 구성하는 방법은 AMQ Core Protocol JMS 설명서에서 흐름 제어를 참조하십시오.