2016-06-23 3 views
0

나는 rabbitmq 소비자에 대한 2 개 질문 (수신기)이 있습니다Rabbit MQ 소비자는 어떻게 작동합니까?

  1. 이 어떻게 (정적 큐에서) 정의 할 수 있습니다 특정 대기열에 등록 된 소비자가 무엇을 그렇게 하나 개 소비자는 메시지 아래 인 경우 해당 소비자가 다시 올라온 후에도 계속 제공 될 것입니까? 아니면이를 달성 할 다른 방법이 있습니까?
  2. 소비자가 아직 생성되지 않은 대기열에 rabbitmq 자습서에서 어떻게 연결합니까? 제작자가 전에 소비자에게 전화를 걸 수 있으며 여전히 작동 할 것입니다. 누군가가 어떻게 작동하는지 설명해주십시오. 당신이 원하는 것을 달성하기

감사

답변

2
  1. 이가 (당신이 자동 인정하지 있는지 확인) rabbitmq 디자인입니다, 간단합니다. 메시지는 확인 될 때까지 대기열에 남아 있습니다. 따라서 기본적으로 소비자는 메시지 처리를 끝내고이를 인정해야합니다. 처리 중에 소비자가 사망하면 메시지가 ACK되지 않고 대기열에 다시 대기합니다. 다음에 소비자가 올라 오면 그 메시지를 얻습니다. 물론 동일한 (단순함을 위해) 소비자의 인스턴스가 여러 개인 경우 다시 대기중인 메시지가 사용됩니다. 멋지게 설명 된 in the second tutorial on rmq website입니다.

  2. 대기열 선언은 멱등 열 조작입니다. 대기열이 이미 존재하지 않으면 작성됩니다. 소비자가 대기열을 만드는 첫 번째 소비자라면 괜찮습니다. 실제로는 입니다. 일반적으로의 작동 방식입니다. 게시자는 실제로 대기열에 대해서도 알 필요는 없으며 (교환 대상 및 라우팅 키에만 관심이 있습니다). 또한 누군가가 듣고 있는지 신경 쓰지 않고 단순히 메시지를 게시합니다. 소비자는 큐를 바인딩 할 라우팅 키를 지정해야합니다.