2014-10-05 3 views
1

Camel을 사용하여 클라이언트/서버 요청/응답 시스템에서 작업하고 있습니다.Camel을 JMS 클라이언트로 사용

클라이언트와 서버는 요청 대기열과 응답 대기열이라는 두 개의 JMS 대기열을 사용하여 통신합니다.

서버 측은 요청 대기열에서 JMS 메시지를 소비하고 동시에 메시지를 처리하는 낙타 경로를 가지고 있습니다. 응답은 응답 대기열을 사용하여 클라이언트로 다시 전송됩니다.

클라이언트 측에서 JMS 큐로 메시지를 보내고 응답을 기다립니다. 두 가지 질문이 있습니다.

  1. 클라이언트 측은 실제로 다른 응용 프로그램에서 사용할 라이브러리입니다. 클라이언트 측에서도 Camel을 사용하고 싶지만 Camel을 "함수"로 사용하는 방법을 모릅니다. 즉, 코드가있는 일부 지점에서 "이 객체를이 낙타 경로로 전송"해야합니다. 어떻게해야합니까?

  2. 낙타가 두 개의 대기열을 사용하여 요청/응답을 처리하는 표준 방법이 있습니까?

대단히 감사합니다.

답변

1
  1. 가 CamelContext에서 ProducerTemplate를 사용하는 방법 질문 2에 대한 대답은 '예, 당신은 참조 할 수있다. 그것은 당신이 어딘가에서 클라이언트 주위에 낙타 컨텍스트를 유지할 것을 요구합니다.

    당신은 물건처럼 수행 할 수 있습니다 producerTemplate.requestBody(myPayload,"jms:queue:whatever");

  2. 낙타가 several different ways를 사용하여 요청 응답을 처리 할 수 ​​있습니다. 명시 적 응답 대기열 (기본적으로 사용되는 임시 대기열 없음)을 사용하면 더 빠른 독점 모드 (jms:queue:request.queue?replyTo=client1.replies&replyToType=Exclusive)를 사용할 수 있지만 클라이언트 당 고유 대기열이 필요합니다. 다른 대안은 모든 클라이언트에 대한 공유 대기열입니다. URI는 다음과 같습니다. activemq:queue:request.queue?replyTo=shared.replies. 참고 : 공유 응답 큐는 JMS 선택기를 사용하여 각 클라이언트에 대한 메시지를 선택하므로 성능 및 왕복 지연 시간이 소요됩니다.

관련 문제