是否有消息传递解决方案(最好是支持Python),我可以像邮箱一样使用,例如从任何给定的队列中检索消息而不必订阅?我想消息队列可以工作,但我必须重复订阅,从队列中获取消息,然后取消订阅,这听起来不是最佳。
答案 0 :(得分:0)
有很多选择。这是两个:
看看Redis。它有两个Python客户端库(请参阅redis-py和txRedis)。您可以通过在Redis中的列表上执行blpop
来模拟您描述的操作(队列上的类似邮箱的操作)。
另一个选项是RabbitMQ。它有相当多的Python客户端库py-ampqlib和txAMQP。您可以通过执行basic.get
和basic.ack
将此视为类似邮箱的队列(有关详情,请参阅this reference)。
答案 1 :(得分:0)
RabbitMQ - http://www.rabbitmq.com
ZeroMQ - http://www.zeromq.org
亚马逊SQS - http://aws.amazon.com/sqs
这三个都有python库。 前两个是免费的。如果您不发送和接收数百万条消息,SQS成本非常低,并且它具有高可用性的优势,使您无需自己托管管理它。
关于订阅和取消订阅,如果您从队列中拉出而不是让队列向您推送消息(pub / sub),那么您不会订阅和取消订阅。在上面的所有示例中,您不会产生任何开销。
答案 2 :(得分:0)
大多数(如果不是全部)消息传递解决方案支持两种消息传递模式
发布\订阅 - 也就是说,您需要订阅才能收到消息。
排队 - 一方向队列发送消息,另一方从队列中读取消息 - 无需订阅,消息在读取时消耗。
实际上,标准排队比发布订阅更常见 - 你有更好的机会找到支持排队的工具,但不是pub \ sub,然后找到一个支持pub \ sub但不排队的工具。
您可能正在寻找第二种模式