2017-11-16 21 views
0

제 경우에는 'queue-1'의 메시지를 읽고 다른 queue 'queue-2'에 다시 쓰는 동일한 응용 프로그램 인스턴스 두 개를 실행해야합니다. 두 큐의 메시지는 생산자가 모든 메시지에 처음 추가하는 특정 속성 (시퀀스 번호)에 따라 정렬해야합니다. 하나의 제작자가 메시지를 보내면 대기열 -1 내부의 문서에 따라 메시지 순서가 보존됩니다. 그러나 처리 된 메시지를 읽고, 처리하고 큐 -2에 보내는 여러 소비자가 있기 때문에 큐 -2 내부의 메시지 순서가 손실 될 수 있습니다. 그래서 저의 임무는 메시지가 queue-1에서 읽힌 것과 같은 순서로 queue-2에 배달되는지 확인하는 것입니다. Queue-2 내부의 메시지를 재 배열하기 위해 Apache camel에서 재 시퀀싱 패턴을 구현했습니다. 재 시퀀싱 프로그램은 잘 작동하지만 낙타 경로가 로컬에서 실행되므로 데이터 전송 오버 헤드가 발생합니다. 더 나은 방법으로 그 일에 대해 생각, 내가 세 가지 질문이 있습니다메시지 순서 변경 - Artemis

본질적으로 아르테미스합니까 같은 일련 번호와 같은 속성을 사용하여 큐 내부 메시지의 재정렬을 지원
  1. .
  2. 서버 내부에서 경로를 실행할 수 있습니까? 그렇다면 사례를 제시하거나 문서에 대한 링크를 제공 할 수 있습니까?
  3. divert (split)와 같은 일부 artemis 기능은 브로커 구성 (broker.xml 파일)을 수정해야합니다. 프로그래밍 방식으로 동적으로 시작할 수 있기 때문에 시작할 때 결정할 수 있습니다. 메시지를 전환 하시겠습니까? 나는 이것이 낙타를 사용함으로써 성취 될 수 있다는 것을 알고 있지만, 서버에서 모든 것이 실행되기를 원한다.

감사합니다.

답변

1

artemis는 본질적으로 시퀀스 번호와 같은 속성을 사용하여 대기열 내에서 메시지의 순서를 바꾸는 것을 지원합니다.

아니요. 카멜은 제 의견으로는 가장 좋은 해결책입니다.

서버 내부에서 경로를 실행할 수 있습니까? 그렇다면 예제를 제공하거나 문서에 대한 링크를 제공 할 수 있습니까?

Camel 컨텍스트가있는 웹 응용 프로그램을 사용하여 ActiveMQ 5.x에서와 같은 종류의 작업을 수행 할 수 있어야합니다. 5.x 문서는 here입니다. 이러한 전환 (분할)로

일부 아르테미스 기능은 프로그래밍 방식을 할 수있는 방법이 및 메시지를 전환 시작할 때 동적으로 내가 결정할 수, 브로커 구성을 (broker.xml 파일)를 수정해야합니다?

런타임에 프로그래밍 방식으로 (또는 관리 상으로) 전환을 생성, 수정 및 삭제하려면 Artemis 관리 방법을 사용할 수 있습니다. 그러나 이러한 수정 사항은 변동될 수 있습니다 (즉, 브로커를 다시 시작한 후에도 유지되지 않습니다).