2017-12-23 7 views
0

보낸 사람이 큐에 메시지를 보내는 경우 (예 : message1)는 sender1에 의해 대기열로 보내집니다. 이제 consumer1이라는 소비자가 대기열에 연결하고 message1 메시지를 읽습니다.JMS 대기열로 보낸 메시지는 단일 사용자 만 사용합니까?

consumer2이라는 또 다른 소비자가 있습니다. 그러나 메시지 message1은 이미 consumer1에 의해 소비되었으므로 consumer2에는 사용할 수 없습니다.

다음 메시지가 queue에 도착하면 consumer1 전에 큐를 읽으면 consumer2이 해당 메시지를 수신 할 수 있습니다.

첫 번째 메시지를 queue에서 사용할 수있게하려면 한 소비자가 다른 큐보다 먼저 큐를 읽어야하는지 여부입니다.

답변

1

이것은 JMS의 대기열 특성이며 메시지는 한 소비자에게 보내지고 일단 사라지면 다음 소비자가 다음 메시지를받을 수 있습니다. 이것은 종종 경쟁 소비자 또는로드 균형 조정이라고합니다. 대기열의 항목과 관련된 작업에 상당한 시간이 소요될 때 더 높은 처리량을 허용하는 작업 또는 작업 항목이 대기열에 들어갈 때 소비자는 작업을 공유 할 수 있습니다.

메시지 브로드 캐스터에 따라 다른 소비자가 대기열에서 메시지를 읽을 수 있도록 해당 소비자 만 독점적으로 만들 수있는 옵션이 있습니다. 독점적 인 소비자가 떠날 때 대기하여 정렬 백업을 기다립니다.

다른 옵션은 주어진 메시지를 둘 이상의 대기열로 라우트하거나 AcitveMQ 가상 토픽을 사용하여 메시지를 주제에 보내 특정 메시지를 대기열에 넣는 것입니다.

솔루션은 사용중인 브로커 및 해결하려는 문제에 따라 달라지며 그 중 어떤 질문도 명확하게 밝혀지지 않았습니다.

+0

사실 대기열 메시지가 한 명의 소비자에 의해 소비되는 경우 왜 여러 대기열에서 대기열에 액세스 할 수 있는지 궁금합니다. 그것은 우리에게 어떤 유익을 줄 것입니까? 답변 해주셔서 감사합니다. – muasif80

+0

대기열이기 때문에 정의 된대로 대기열을 혼동하는 경우 JMS 사양을 읽으십시오. –

관련 문제