我正在开发一个应用程序,我只是想知道 RabbitMQ 是否可以允许所有客户端将消息推送到特定队列,并且只有经过身份验证的用户才能使用该队列中的消息?我似乎找不到任何关于此的信息:/
基本上我的模型是这样的: 客户端都连接到同一个队列并将消息推送到该队列上。此外,每个客户端都应该注册自己的队列来接收消息(每个客户端都有唯一的队列)。
因此,基本上客户端会将消息发送到一个队列,并且只有我的服务器应用程序应该能够从中读取、处理数据并将回复发送到特定的用户队列(该队列应该只能由该用户读取,并且只有服务器应该发布在上面)。
我想这是可能的吧?有人可以引导我朝着正确的方向寻找有关这些事物/示例/教程的更多信息
最佳答案
所以,据我所知,开箱即用是不可能的,但你有两个选择:
- 如果您熟悉erlang,您可以为rabbitmq编写自己的插件(不需要额外的erlang知识 - 只需基础知识)
- 您可以创建 2 个虚拟主机并在每个主机上进行交换(虚拟主机 A 用于读取,虚拟主机 B 用于写入)。在虚拟主机 B 中创建交换器,并使用路由键将其绑定(bind)到特定队列。在虚拟主机 A 中创建联合交换[1]。简介:联邦交换允许映射交换到上游交换,这意味着映射交换将接收来自上游交换的所有消息。因此,在虚拟主机 A 中创建交换 E1,并将其映射到虚拟主机 B 中的交换 E2。对于每个虚拟主机,您可以创建不同的用户。
[1]:http://www.rabbitmq.com/federation.html - 这是关于联合插件的手册,其中包含现成的示例。
关于java - RabbitMQ - 安全/身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10589516/