我正在使用防火墙后面的节点实现一个小型分布式系统(在Python中)。在以下限制下,在节点之间传递消息的最简单方法是什么:
考虑的解决方案:
是否有其他可用的公共(免费)可访问消息队列(或可被误用为消息队列的平台)?
我知道设置我自己的消息代理(RabbitMQ,Mosquito)等的解决方案,并以某种方式让我的节点可以访问它(ssh-forwardning到第三个主机等)。但我的问题主要是关于任何不要求我这样做的解决方案,即任何利用已经可用/可访问的第三方基础设施的解决方案。 (即我可以使用任何公共信息经纪人吗?)
答案 0 :(得分:1)
Mosquitto:实现MQ遥测传输协议版本3.1和3.1.1的消息代理如何。 MQTT提供了一种使用发布/订阅模型执行消息传递的轻量级方法。这使它适用于机器加工"消息。它支持加密。设置时间:大约15分钟你应该启动并运行。由于它是消息代理,因此您可以编写自己的代码以确保可以与第三方解决方案进行通信。此外,它实现了软实时,但根据您的设置,您可以实现硬实时。看了Mosquitto后,看看Paho,这是Eclipse基金会的Mosquito的一个端口。
Paho还提供了一个Python客户端,它支持Python 2.7或3.x上的MQTT v3.1和v3.1.1。它还提供了一些帮助函数,可以非常直接地向MQTT服务器发布一条消息。大量文档和示例可帮助您开始运行。
答案 1 :(得分:0)
我会推荐RabbitMQ或Redis(RabbitMQ首选,因为它是一种非常成熟的技术并且非常可靠)。如果您想要单跳邮件系统而不是像RabbitMQ这样的代理邮件系统,ZMQ是一个选项,但ZMQ比RabbitMQ更难使用。取决于您希望如何利用消息传递(是否为任务调度,在这种情况下您可以使用Celery,或者如果您需要稍微更低级别的访问,在这种情况下使用Kombu和librabbitmq传输)
答案 2 :(得分:0)
找到了https://www.cloudamqp.com/,它提供了一个基于云的RabbitMQ安装的免费计划。我会尝试,看看它是否满足我的需求。