와 ActiveMQ를 균형을로드합니다. 하지만 100 TPS에서 500 TPS로 확장 할 수는 없습니다. 이미어떻게이 같은 트랜잭션을 수행 아파치 낙타를 기반으로 미들웨어를 지속적 메시지
- 는 동시 소비자 설정을 제기하고 트랜잭션 속도를 높이기 위해 빈 businessProcessor
- 구성된 JAVA_XMX 및 PERMGEN
을 사용했다.
Active MQ 웹 콘솔에 따르면 시나리오 500TPS에서 처리되는 것을 기다리는 메시지가 너무 많습니다. 나는 솔루션 중 하나가 ActiveMQ를 확장한다고 생각합니다. 그래서 클러스터에 여러 중개인을 사용하고 싶습니다.
http://fuse.fusesource.org/mq/docs/mq-fabric.html ("토폴로지"절)에 따르면 클러스터링 모드에서 ActiveMQ를 구성하는 것이 비 지속성 메시지에 적합합니다. IMHO, 실행중인 모든 브로커가 동일한 저장소 파일을 사용하기 때문에 적합하지 않다는 것은 사실입니다. 그러나 저장소 파일을 분리하는 것은 어떻습니까? 지금 가능한가?
아무도 이것을 설명 할 수 있습니까? 가능하지 않은 경우 영구 메시지의로드 균형을 유지하는 가장 좋은 방법은 무엇입니까?
감사
감사를 참조하십시오. IMHO, 나는 그것들이 단지 트랜잭션의 속도를 높이지만 트랜잭션의 수를 늘리지는 않을 것이라고 생각한다. 5000 메시지/초를 처리하도록하려면 어떻게해야합니까? 로드 밸런싱을 할 수 있도록 클러스터를 구성하기 위해 다른 머신을 구입해야한다고 생각합니다. – sancho21
처리 속도와 처리량은 직접 관련이 있습니다. 스레드 처리 1 개당 1000 개의 메시지는 1 개의 메시지를 처리하는 1000 개의 스레드와 동일한 처리량을 제공합니다. 단일 시스템에서 제공 할 수있는 것 이상으로 확장하려는 경우 병목 현상 인 ActiveMQ (http://activemq.apache.org/activemq-performance-module-users-manual.html에서 쉽게 확인할 수 있음)를 테스트해야합니다. , 또는 낙타 경로. 후자 인 경우 상한값을 찾을 때까지 소비자 수를 계속 조정 한 다음 라우팅 프로세스의 두 번째 인스턴스를 다른 상자에 추가하여 동일한 ActiveMQ 인스턴스에서 읽습니다. –
실제 처리가 알려지지 않았기 때문에 이러한 처리 단계가 항상 seda 구조로 분해 될 수 있다고 가정하지 않습니다. –