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