RabbitMQ可以用于一对一对话吗?

RabbitMQ可以用于一对一对话吗?,rabbitmq,Rabbitmq,我想做一些电子邮件或短信服务器排序 您向带有标记“pseudo”的RabbitMQ发送消息,用户“pseudo”侦听带有标记“pseudo”的消息 然而,在教程RabbitMQ中没有提到这一点。有主题、路由键等。。。 这看起来很相似,但在我看来,每个“主题”/“标记”/必须有一个队列。。。 我想知道您是否可以拥有非常多的队列,或者RabbitMQ是否不适合这种用法。谢谢是的,你可以 基本实现很容易 您可以创建一个主题Exchange,例如名为“conversations”,然后使用路由键为每个用

我想做一些电子邮件或短信服务器排序

您向带有标记“pseudo”的
RabbitMQ
发送消息,用户“pseudo”侦听带有标记“pseudo”的消息

然而,在教程
RabbitMQ
中没有提到这一点。有主题、路由键等。。。 这看起来很相似,但在我看来,每个“主题”/“标记”/必须有一个队列。。。 我想知道您是否可以拥有非常多的队列,或者RabbitMQ是否不适合这种用法。谢谢

是的,你可以

基本实现很容易

您可以创建一个主题
Exchange
,例如名为
“conversations”
,然后使用路由键为每个用户绑定一个持久队列

队列数量不是问题,因为您的系统必须扩展,RabbitMQ可以毫无问题地扩展

无论如何,我认为问题不在于队列数量,而是有其他最适合您的系统的技术

XMPP就是其中之一,我试过ejabbed,但还有其他服务器

WhatsApps示例使用自定义XMPP


另一个问题是如何将移动应用程序与XMPP集成,您可以找到一些现成的库,如

为什么需要不同的队列?您可以让不同的用户订阅不同的主题,然后您可以发布到这些特定主题以向特定的人发送消息。IMHO,您可以只使用一个MQ来建立这个系统。@Alpay So 1队列用于所有消息,而我所说的“标记”是一个主题?i、 e客户端将执行queue.consume(主题=我的用户名,回调…)?从文档中可以看出,主题与队列不同,stopics是消息的某种标识符。假设您有两个客户,
clientA
clientB
,他们以相同的名称订阅了主题。当您想放置应由
clientA
使用的消息时,需要将其与主题
clientA
一起放置。请注意,主题可以具有层次结构并接受通配符,因此,如果您适当地设计主题,您可以向多个客户端发送消息。@Alpay我在Doc(
basic\u
)中没有看到标记/主题要查看的任何参数。你如何观察队列并说你只想听
clientA
@Alpay在RabbitMQ教程中,将创建一个新的临时队列,并使用主题过滤器将其绑定到exchange。这可以正常工作,但在接收器唤醒之前发送到队列的消息会丢失。