2016-12-26 7 views
-2

내 시스템의 구성 요소에 대한 메시지 버스로 RabbitMQ를 사용하여 서로 이야기하고 있습니다. 몇 가지 이유에서 게시자가 대기열/교환기로 잠시 동안 메시지를 보내지 않고 나중에 다시 시작할 수 없도록하고 싶습니다. 어떻게하면 좋을지 제안 해 주시겠습니까? 나는 rabbitMQ pluggins을 쓰는 것에 대해 읽었지만 Erlang에 관해서는 거의 알지 못하기 때문에 그것이 내가 기대하는 바를 할 수 있는지 확신 할 수 없다.RabbitMQ에서 메시지를 수신하지 못하도록 대기열 차단

감사합니다, 마이클

+0

달성하려는 목표, 구성 등을 추가하십시오. 생성자 코드가 메시지를 보내지 못하게하거나 Derick이 대기열 바인딩을 제거 할 수 있다고 제안 할 수 있습니다. 적절한 답을 얻기 위해서는 더 많은 정보를 제공해야합니다. –

답변

0

게시자가 m을 보내지 못하도록하고 싶습니다. 에세이를 대기열/잠시 동안 교환하고 나중에 다시 시작합니다.

메시지 손실에 신경 쓰지 않는다면 문제의 대기열에 대한 교환 -> 대기열 바인딩 만 제거하면됩니다. 이렇게하면 메시지가 대기열로 라우팅되지 않습니다.

중단 한 부분에서 메시지를 수신하는 것을 "다시 시작"해야하는 경우 그렇게 할 수 없습니다. 대기열은 메시지를 처음 수신 할 때 메시지를 받거나 수신하지 않습니다. 예를 들어 메시지 1, 2, 3, 4 및 5를 게시하면 메시지 3이 게시 된 후 대기열로 라우팅이 중지됩니다. 나중에 라우팅을 다시 시작하고 같은 큐에서 메시지 4와 5를 수신하려고합니다 ... 불가능합니다.

"다시 시작"옵션이 필요한 경우 가장 좋은 방법은 사용자를 중지하고 메시지를 대기열에 수집하는 것입니다. 메시지 처리를 다시 시작할 필요가있을 때 소비자를 다시 시작하십시오.

관련 문제