2017-12-05 20 views
0

RabbitMQとフェデレーションプラグインについて混乱します。したがって、私はそれを動作させることができないようです。フェデレーションプラグインを使用したIoT用RabbitMQ?

のは、私はそれらすべてがクラウドサーバ(C1)にメッセージを送信したいラズベリーパイS(rpi1、rpi2、rpi3 ... RPIN)の 'n' の数

があるとしましょう。

インターネットに断続的に接続するので、サーバーに送信する前に、すべてのユーザーがメッセージをローカルにキューに入れてもらいたいと考えています。その後、オンラインになって自分のメッセージをc1に送信し、キューからそれらのメッセージを取り出すことができます。私はすべてのメッセージを1つのキューに入れたい。

すべてのホストで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. 受信メッセージを取得してキューにドロップするには、c1で何をする必要がありますか?
  3. rpiでメッセージをサーバーに送信するにはどうすればいいですか?
  4. これは私が試行しているときの良いパスですか?

完全に失われた。ご協力いただきありがとうございます!!

答えて

0

あなたが説明しているユースケースからは、フェデレーションはあなたにとって正しい道のようです。 documentationから

フェデレーションプラグインはブローカーとの間で通信するためにAMQP 0-9-1を使用して、断続的な接続を許容するように設計されています。

セットアップの問題は、あなたがit should be done on the federated node:

他の取引所に統合交換リンクながら(上流の交換と呼ばれる)、上流のノードの設定を行ってきたということです。論理的には(次の項目を参照)、上流の取引所に発行されたメッセージは、直接取引先に発行されたかのように、フェデレーテッド取引所にコピーされます。アップストリーム交換は再構成する必要はなく、同じブローカまたは同じクラスタ上にある必要はありません。

したがって、rpisの設定はc1で行われません。

  1. が上流C1上の取引所にRPISにターゲット交換をリンクするポリシーを追加
  2. あなたが作成したすべてのアップストリームに設定しフェデレーションを作成RPISごとにC1の上流を作成します。あなたが定義したフェデレーション上流のセットを参照してください(「すべて」はすべてのアップストリームを指していますが、あなたのユースケースに合っているかもしれません)。
関連する問題