2017-10-12 12 views
0

가능한 한 최선을 설명하려고합니다.기존 큐를 CompositeQueue로 변환하는 ActiveMQ

ActiveMQ 큐에서받은 데이터를 여러 위치에 저장하기 때문에 각 큐브마다 데이터를 개별적으로 처리 할 수 ​​있도록 복합 대기열을 작성하기로 결정했습니다.

현재 실행중인 문제는 현재 프로덕션 환경에서 큐가 있음을 나타냅니다. A라는 대기열을 B 및 C라는 가상 목적지가있는 A라고도하는 복합 대기열로 변경하면 기존 대기열의 모든 데이터가 손실됩니다. 이전 메시지를 시작할 때 시작하지 않습니다. 현재, 다른 이름으로 새로운 CompositeQueue를 생성하고 있습니다. D는 B와 C에 데이터를 전달합니다. 그런 다음 모든 생성자가 D와 B로 보내도록 업데이트 할 때까지 모든 연결을 차단하는 다소 복잡한 코드가 있습니다.)는 소비자를 사용하여 A에서 데이터를 가져 와서 제작자와 함께 D로 보냈습니다.

다소 혼란 스럽습니다. 이 주위에 어떤 방법이 있습니까? 이상적으로는 동일한 큐 이름을 유지하고 현재의 모든 데이터를 복합 하위 큐로 보내고 큐를 앞으로 만 전달할 수 있습니다.

답변

0

메시지가 실행 중일 때 복합 대기열의 메시지 라우팅이 작동하고 나중에 해당 대기열에 메시지가 저장되어 있고 브로커 구성이 변경 될 때 원하는 동작을 수행 할 수 없습니다. 당신은 초기 대기열에서 과거 메시지를 소비해야합니다 (A it it is it). 그리고 원하는 목적지로 보내야합니다.

+0

나는 그것을 두려워했다. 그것은 (필자의 경우) 역 호환 코드를 작성하는 것을 어렵게 만든다. 내 솔루션이 올바른 방향인지 확인해 주셔서 감사합니다. –