【发布时间】:2014-04-04 07:58:49
【问题描述】:
我想做某种电子邮件或短信服务器。
您向RabbitMQ 发送带有标签“pseudo”的消息,用户“pseudo”收听带有标签“pseudo”的消息。
但是在教程RabbitMQ 中没有提到这一点。有主题,路由键,...
这看起来很相似,但在我看来,每个“主题”/“标签”/...必须有 1 个队列
我想知道您是否可以拥有非常多的队列,或者 RabbitMQ 是否不适合这种用法。谢谢
【问题讨论】:
-
为什么这些需要不同的队列?您可以让不同的用户订阅不同的主题,然后您可以发布到这些特定主题以将消息发送给特定的人。恕我直言,您可以只有一个 MQ 来建立这个系统。
-
@Alpay 所以 1 个队列用于所有消息,而我所说的“标签”是一个主题?即客户会做 queue.consume(topic=my_username, callback...) 吗?从文档看来主题与队列不同
-
主题是某种消息的标识符。假设您有 2 个客户,
clientA和clientB,他们订阅了同名的主题。当你想放一条应该被clientA消费的消息时,你需要把它和主题clientA一起放。请注意,主题可以具有层次结构并接受通配符,因此如果您设计得当,您可以向多个客户发送消息。 -
@Alpay 我在文档 (
basic_consume) 中没有看到要查看的标签/主题的任何参数。您如何观看队列并说您只想听clientA? pika.readthedocs.org/en/latest/modules/channel.html -
@Alpay 在 RabbitMQ 教程中,新建一个临时队列,绑定到与主题过滤器的交换。这工作正常,但在接收者唤醒之前发送到队列的消息会丢失。
标签: rabbitmq