2012-09-18 4 views
1

로컬 임베디드 중개자에게 Tomcat 대기열에 메시지를 넣는이 app 서버가 있습니다. 이 메시지는 독립 실행 형 브로커로 전달됩니다. 독립 실행 형 브로커가 메시지를 소비하는 다른 시스템이 연결되어 있습니다. 내장 브로커 및 독립형 브로커는 영구적입니다.ActiveMQ 5.6 느린 메시지 전달

이 대기열은 독립 실행 형 브로커로 전달되는 메시지보다 내장 브로커에서 빠르게 커집니다. 나는 dispatch count가 enqueue count보다 작은 것을 분명하게 볼 수있다. 임베디드 중개인에게가는이 대기열에 단 하나의 소비자 만 연결되어 있고 독립형 중개인에 연결된 많은 소비자가 있다는 것을 알았습니다.

독립 실행 형 브로커의 대기열 크기는 거의 0이며 CPU는 약 95 % 유휴 상태입니다. 즉, 독립 실행 형 브로커가 최대 값을 초과하지 않고 메시지가 독립 실행 형 브로커가 아니라 내장 브로커에 누적되지 않음을 의미합니다.

독립형 브로커가 임베디드 브로커에서 읽는 스레드/소비자의 수를 늘리는 구성 매개 변수가 있습니까? 또는 임베디드 브로커가 독립 실행 형 브로커에 메시지를 더 빨리 보내거나 더 많이 보내도록 만들 수 있습니까?

모든 서버에서 ActiveMQ 5.6.0을 실행 중입니다.

아이디어가 있으십니까?

답변

1

ActiveMQ 사이트의 모든 최적화 자습서와 참여자가 사용하지 않는 conduitSubscriptions에서 독립 실행 형 브로커의 메모리 양을 늘리고 networkConector 항목 수를 늘 렸습니다.

이러한 모든 변경 사항으로 상황이 개선되었지만 메시지는 생성 된 것보다 느리게 전달되었습니다. 궁극적 인 해결책은 내 디스크가 고성능 디스크가 아니었고 통신 대역폭이 100 %였습니다

강력한 RAID를 얻으려고 기다리는 동안 독립형 중개인을 비 영구적으로 만들었으며 대기열이 몇 대 의사록. 그들은 그 이후로 거의 평평하게 머물러있었습니다.