7장. 페이징 메시지
AMQ Broker는 서버가 제한된 메모리로 실행되는 동안 수백만 개의 메시지가 포함된 대규모 큐를 투명하게 지원합니다.
이러한 상황에서 모든 대기열을 메모리에 한 번에 저장할 수 없으므로 AMQ Broker는 필요한 대로 메시지를 투명하게 페이징 아웃하여 메모리 공간이 낮은 대용량 큐를 허용합니다.
페이징은 주소당 개별적으로 수행됩니다. AMQ Broker는 주소의 메모리의 모든 메시지의 크기가 구성된 최대 크기를 초과할 때 디스크에 페이징 메시지를 시작합니다. 주소에 대한 자세한 내용은 주소 및 대기열 구성을 참조하십시오.
기본적으로 AMQ 브로커는 메시지를 페이징하지 않습니다. 활성화하려면 페이징을 명시적으로 구성해야 합니다.
AMQ Broker에서 페이징 을
사용하는 방법을 보여주는 작업 예제는INSTA LL_DIR
/examples/standard/에 있는 페이징 예제를 참조하십시오.
7.1. 페이지 파일 정보
메시지는 파일 시스템의 주소별로 저장됩니다. 각 주소에는 메시지가 여러 파일(페이지 파일)에 저장되는 개별 폴더가 있습니다. 각 파일에는 최대 구성된 크기(page-size-bytes
)까지 메시지가 포함됩니다. 시스템은 필요에 따라 파일을 탐색하며 모든 메시지가 해당 지점까지 승인되는 즉시 페이지 파일을 제거합니다.
브라우저는 페이지 반복 시스템을 통해 읽습니다.
선택기가 있는 소비자도 page-files를 탐색하고 기준에 일치하지 않는 메시지는 무시합니다.
큐가 있고 소비자는 큐에서 메시지를 사용할 때까지 페이징에서 더 많은 데이터를 읽을 수 없는 경우 매우 제한적인 선택기로 큐를 필터링 할 수 있습니다.When you have a queue, and consumers filtering the queue with a very restrictive selector you may get into a situation where you won't be able to read more data from paging until you consume messages from the queue.
예: 한 소비자에서 'color="red"'로 선택기를 만들지만 파란색 후 하나의 빨간색 메시지만 있으면 파란색을 사용할 때까지 빨간색을 사용할 수 없습니다. 이는 큐를 공급하는 동안 메시지를 검색하는 동안 및 메시지를 검색하는 동안 전체 대기열을 "browse"하므로 검색하는 것과 다릅니다.