我对RabbitMQ和联合插件感到困惑。因此,我似乎无法将其设置为工作。
假设我有'n'个覆盆子pi(rpi1,rpi2,rpi3 ...... rpin)
我希望他们都将消息发送到云服务器(c1)。
他们将有间歇性的互联网连接,因此我希望他们在发送到服务器之前将所有邮件排在本地。然后,当他们上线将他们的消息发送到c1,以便我可以从队列中检索它们。我希望所有消息都转到一个队列。
我在所有主机上设置了rabbitmq。
这就是我所做的:
我在所有树莓派上配置上游
rabbitmqctl set_parameter federation-upstream my-upstream '{"uri":"amqp://user:pwd@c1.foo.com","expires":3600000}'
rabbitmqctl set_policy --apply-to exchanges federate-me "^amq\." '{"federation-upstream-set":"all"}'
交易所似乎在服务器上设置了自己
我似乎无法弄清楚如何将消息添加到rpi队列并让它显示在服务器上。
我错过了什么?
完全迷失了。谢谢你的帮助!!
答案 0 :(得分:0)
从您描述的用例来看,联盟似乎是适合您的正确道路。
联合插件使用AMQP 0-9-1在代理之间进行通信,旨在容忍间歇性连接。
您的设置问题是您已在上游节点上完成配置,而it should be done on the federated node:
联邦交换机链接到其他交换机(称为上游交换机)。逻辑上(参见下一个项目),发布到上游交换机的消息将被复制到联合交换机,就像它们直接发布到联合交换机一样。上游交换不需要重新配置,也不必位于同一个代理或同一个集群中。
因此对rpis没有任何操作,配置在c1上。