2017-12-05 1 views
0

Ich bin verwirrt über RabbitMQ und das Federated-Plugin. Daher scheint ich nicht in der Lage zu sein, es zur Arbeit zu bringen.RabbitMQ für IoT mit Federated Plugin?

Lassen Sie uns sagen, ich habe 'n' Anzahl der Raspberry Pi s (RPI1, rpi2, rpi3 ... RPin)

Ich möchte, dass sie alle Nachrichten an einen Cloud-Server (c1) senden.

Sie haben intermittierende Verbindungen zum Internet, so dass ich möchte, dass sie alle ihre Nachrichten lokal einreihen, bevor sie an den Server gesendet werden. Dann, wenn sie online kommen, um ihre Nachrichten an c1 zu senden, damit ich sie aus einer Warteschlange abrufen kann. Ich möchte, dass alle Nachrichten in eine Warteschlange gehen.

Ich richtete Rabbitmq auf allen Hosts. Hier

ist das, was ich getan habe:

ich konfigurieren Upstreams auf alle von der

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"}' 

den Börsen s Raspberry Pi scheinen sich zu gründen auf dem Server

Ich kann nicht scheinen zu finde heraus, wie man eine Nachricht in eine rpi-Warteschlange einfügt und sie auf dem Server anzeigt.

Was fehlt mir?

  1. Ist Föderation, was ich will?
  2. Was muss ich auf c1 tun, um eingehende Nachrichten zu empfangen und in eine Warteschlange zu stellen?
  3. was muss ich tun auf dem rpi s, um sie ihre Nachrichten an den Server zu senden
  4. Ist das ein guter Weg für das, was ich versuche?

Total verloren. Danke für Ihre Hilfe!!

Antwort

0

Aus dem Anwendungsfall, den Sie beschreiben, scheint die Föderation der richtige Weg für Sie zu sein.

Vom documentation:

Der Verband Plugin verwendet AMQP 0-9-1 zwischen Maklern zu kommunizieren, und ausgelegt ist, vorübergehend eine Verbindung zu tolerieren.

Das Problem mit dem Setup ist, dass Sie die Konfiguration auf dem Upstream-Knoten gemacht haben, während it should be done on the federated node:

ein föderierte Austausch von Links zu anderen Börsen (upstream Börsen genannt). Logischerweise (siehe nächster Punkt) werden Nachrichten, die an den Upstream-Austausch veröffentlicht wurden, in den Verbundaustausch kopiert, so als ob sie direkt auf diesen publiziert wurden. Die Upstream-Austauschvorgänge müssen nicht neu konfiguriert werden, und sie müssen sich nicht auf demselben Broker oder im selben Cluster befinden.

Also keine Aktion auf der RPIS, Konfiguration ist auf c1.

  1. Eine stromaufwärts in c1 für jeden der RPIs
  2. einen Verband anlegen Upstream-Set mit allen Upstreams Sie erstellt haben
  3. eine Politik Fügen Sie die Ziel Austausch über die RPI an den Börsen auf c1 verlinken , Bezug nehmend auf den Föderations-Upstream-Satz, den Sie definiert haben (da sich der "Alle" auf alle Upstreams bezieht, die für Ihren Anwendungsfall natürlich passen könnten, finden Sie ihn genauer)