ActiveMQ 사용 노트 (7) ActiveMQ 성능 최적화

3562 단어 자바activemqMQ
ActiveMQ 사용 노트 (7) ActiveMQ 성능 최적화
 
1. 목표 전략
노드 destinationPolicy 설정 정책 에서 단일 또는 모든 테마 와 대기 열 을 설정 할 수 있 습 니 다. 데이터 감 시 를 사용 할 수 있 습 니 다. 메시지 가 memory Limit 에 이 르 렀 을 때 ActiveMQ 는 메시지 의 발생 을 늦 추고 차단 할 수 있 습 니 다. destinationPolicy 의 설정 은 다음 과 같 습 니 다.
<destinationPolicy>
    <policyMap>
      <policyEntries>
        <policyEntry topic=">" producerFlowControl="true" memoryLimit="1mb">
          <pendingSubscriberPolicy>
            <vmCursor />
          </pendingSubscriberPolicy>
        </policyEntry>
        <policyEntry queue=">" producerFlowControl="true" memoryLimit="1mb">
          <!-- Use VM cursor for better latency
               For more information, see:              
               http://activemq.apache.org/message-cursors.html              
          <pendingQueuePolicy>
            <vmQueueCursor/>
          </pendingQueuePolicy>
          -->
        </policyEntry>
      </policyEntries>
    </policyMap>
</destinationPolicy>

 
producerFlowControl 은 데이터 모니터링 여 부 를 표시 합 니 다. 기본 값 은 true 입 니 다. false 로 설정 하면 메모리 가 넘 치지 않도록 디스크 에 메시지 가 존재 합 니 다.memory Limit 는 producerFlowControl = "true" 의 경우 메시지 가 메모리 에 가장 많이 저장 되 어 있 으 며, 메시지 가 이 값 에 도달 하면 ActiveMQ 는 메시지 의 발생 을 늦 추고 심지어 차단 할 수 있 습 니 다.policy Entry 의 속성 참고:http://activemq.apache.org/per-destination-policies.html
producer 가 보 낸 지속 적 인 메시지 가 broker 에 도착 하면 broker 는 먼저 영구적 인 저장 소 에 저장 합 니 다.그 다음 에 현재 활발 한 consumer 가 있 는 것 을 발견 하면 이 consumer 소비 메시지 의 속도 가 producer 생산 메시지 의 속 도 를 따라 잡 을 수 있다 면 ActiveMQ 는 broker 내부 에서 이 consumer 와 관련 된 dispatch quue 에 메 시 지 를 직접 전달 할 것 이다.현재 활성 화 된 consumer 나 consumer 소비 메시지 의 속도 가 producer 생산 메시지 의 속 도 를 따라 가지 못 하면 ActiveMQ 는 Pending Message Cursors 를 사용 하여 메시지 에 대한 인용 을 저장 합 니 다.필요 할 때 Pending Message Cursors 는 broker 내부 에서 이 consumer 와 관련 된 dispatch quue 에 메 시 지 를 인용 하여 전달 합 니 다.다음은 두 가지 Pending Message Cursors 입 니 다.
VM Cursor: 메모리 에 메시지 의 인용 을 저장 합 니 다.
File Cursor: 우선 메모리 에 메시지 의 인용 을 저장 합 니 다. 메모리 사용량 이 상한 에 도달 하면 메시지 인용 을 임시 파일 에 저장 합 니 다.
부족 한 경우 ActiveMQ 는 사용 하 는 Message Store 에 따라 어떤 종류의 Message Cursors 를 사용 할 지 결정 하지만 destination 에 따라 Message Cursors 를 설정 할 수 있 습 니 다.
topic 에 사용 할 수 있 는 pending Subscriber Policy 는 vmCursor 와 fileCursor 가 있 습 니 다.사용 가능 한 Pending Durable Subscriber Message Storage Policy 는
vm Durable Cursor 와 file Durable Subscriber Cursor;queue 에 사용 할 수 있 는 pendingQueuePolicy 는 vmQueueCursor 와 fileQueueCursor 가 있 습 니 다.
Message Cursors 사용 참고:http://activemq.apache.org/message-cursors.html
2. 저장 설정
메모리, 디스크 에 저 장 된 메시지 의 크기 를 설정 합 니 다. 설정 은 다음 과 같 습 니 다.
<systemUsage>
  <systemUsage>
      <memoryUsage>
          <memoryUsage limit="20 mb"/>
      </memoryUsage>
      <storeUsage>
          <storeUsage limit="1 gb"/>
      </storeUsage>
      <tempUsage>
          <tempUsage limit="100 mb"/>
      </tempUsage>
  </systemUsage>
</systemUsage>

 
memory Usage 는 ActiveMQ 가 사용 하 는 메모 리 를 표시 합 니 다. 이 값 은 destinationPolicy 에 설 치 된 모든 대기 열 메모리 의 합 보다 큽 니 다.
store Usage 는 저장 파일 의 크기 를 영구적 으로 표시 합 니 다.
temptUsage 는 비 지구 화 메시지 저장 의 임시 메모리 크기 를 표시 합 니 다.

좋은 웹페이지 즐겨찾기