2017-12-05 9 views
0

RabbitMQ와 페더레이션 플러그인에 대해 혼동스러워합니다. 따라서, 나는 그것을 작동하도록 설정할 수없는 것 같습니다.페더레이션 플러그인을 사용하는 IoT 용 RabbitMQ?

의 나는 내가 그들 모두가 클라우드 서버 (C1)에 메시지를 보낼 라즈베리 파이의 (rpi1, rpi2, rpi3 ... rpin)의 'N'수

있다고 가정 해 봅시다.

인터넷에 간헐적으로 연결되어 있으므로 서버에 보내기 전에 로컬로 메시지를 모두 대기 시키길 원합니다. 그런 다음 온라인 상태가되어 c1에 메시지를 보내면 대기열에서 메시지를 검색 할 수 있습니다. 모든 메시지를 하나의 대기열로 보내려고합니다.

모든 호스트에서 rabbitmq를 설정했습니다.

나는 라즈베리 파이의

rabbitmqctl set_parameter federation-upstream my-upstream '{"uri":"amqp://user:[email protected]","expires":3600000}' 
rabbitmqctl set_policy --apply-to exchanges federate-me "^amq\." '{"federation-upstream-set":"all"}' 

교류의 모두에 업스트림을 구성 내가 수없는 것 서버

에 자신을 설정하는 것 : 여기

내가 한 일이다 rpi 대기열에 메시지를 추가하고 서버에 표시하는 방법을 알아보십시오.

무엇이 누락 되었습니까?

  1. 내가 원하는 것은 무엇입니까?
  2. 들어오는 메시지를 받아서 큐에 넣으려면 어떻게해야합니까?
  3. 서버로 메시지를 보내려면 무엇을해야합니까?
  4. 시도하는 동안 좋은 경로입니까?

완전히 손실되었습니다. 당신의 도움을 주셔서 감사합니다!!

답변

0

당신이 설명하는 유스 케이스부터는 페더레이션이 올바른 길로 보입니다. documentation 가입일

:

연맹 플러그인 브로커 간 통신 AMQP 0-9-1를 사용하고, 간헐적 연결을 허용하도록 설계된다.

사용자의 설정에 문제는 it should be done on the federated node:

다른 교환에 대한 연합 연결을 교환하면서 (상류 교류라고도 함), 업스트림 노드의 구성을 완료 한 것입니다. 논리적으로 (다음 항목 참조) 업스트림 교환에 게시 된 메시지는 페더레이션 교환에 직접 게시 된 것처럼 복사됩니다. 업스트림 교환은 재구성 할 필요가 없으며 동일한 브로커 또는 동일한 클러스터에있을 필요가 없습니다.

rpis에 대한 작업이 없으므로 구성은 c1에 있습니다.

  1. 상류 C1의 교류에와 RPI에 대상 교류를 링크하는 정책을 추가
  2. 사용자가 만든 모든 업스트림 설정 연합을 만들기 RPI가 각각 C1에서 업스트림 만들기 , 당신이 정의한 연합 업스트림 세트를 참조하십시오 ("모든"은 모든 업스트림을 가리키며, 물론 당신의 유스 케이스에 맞을 수도 있습니다.)