2013-04-02 3 views
0

이 디자인 문제가있어 JMS를 사용하여 구현하는 가장 좋은 방법을 찾으려합니다.JMS 메시지 및 JMS 메시지의로드 균형 조정

웹 앱에는 단일 수신기와 여러 개의 제작자 및 여러 개의 WorkerBee가 있습니다. 리스너는 대기열에서 WorkerBee로 메시지를 푸시합니다. 생성 된 모든 메시지는 Listener에 대기합니다. 어떤 종류의로드 밸런싱 프로세스를 사용하여 리스너 큐에서 각 WorkerBee로 메시지를 보낼 수있는 프로세스를 구현하고 싶습니다. 리스너 큐 또는 WorkerBee 큐에서 메시지의 단일 인스턴스 만 발생합니다.

가장 좋은 방법은 무엇일까요? JMS가 좋은 선택 인 것 같습니까? Listener 큐에서 WorkerBee 큐로 메시지를 푸시하는 방법은 무엇입니까?

제안을 위해 엽니 다. :) 귀하의 답변에 감사드립니다.

답변

3

메시지는 이러한 작업에 적합한 선택입니다. 난 당신이 Apache Camel 프레임 워크를 라우팅 플랫폼으로 설명 된 용도로 사용해야한다고 생각합니다. 비즈니스 로직을 통합 레벨에서 매우 우아한 방식으로 분리 할 수 ​​있습니다.

낙타JMS endpoints을 포함하여 "즉시 사용 가능한"많은 구성 요소를 지원합니다. Load Balancer 패턴을 사용하여 WorkerBee 중 하나에 위임 할 수 있습니다.

+0

카멜을 살펴 보겠습니다. 고마워. –

2

WorkerBee의 인스턴스가 여러 개 있으므로 모든 WorkerBee가 단일 대기열 (예 : InWorkBeeQueue에.

이제 Web App Listener에서 InWorkBeeQueue로 메시지를 게시 할 수 있습니다. 이 대기열에 메시지를 게시하려면 간단한 java JMS 생성자 코드를 작성하십시오. 사용 가능한 WorkBee의 인스턴스에 따라 InWorkBeeQueue에서 메시지를 읽고 처리합니다.

새로운 JMS 생성자 코드 작성을 피하려면 Apache Camel 경로를 사용하여 웹 응용 프로그램 대기열에서 InWorkBeeQueue로 메시지를 직접 매핑 할 수 있습니다.

+0

낙타와 함께하는 JMS 같은 사운드가 올바른 방법입니다. 감사 –