RabbitMQ中的交换/队列访问权限?

RabbitMQ中的交换/队列访问权限?,rabbitmq,messaging,Rabbitmq,Messaging,我正在编写一个移动应用程序,并考虑使用RabbitMQ进行用户到用户的消息传递。据我所知,每个客户机都可以监听它的唯一队列,比如说,在用户id和消息之后,通过发布到其他客户机的队列中。但我担心这种模式是不可靠的,比如说,恶意客户可能会从其他人的队列中读取数据,从而破坏整个计划 有没有办法对RabbitMQ队列/交换机施加基本的读写权限,从而提供安全性?还是我的整个概念都错了,点对点通信根本不是设计的目的?是在RabbitMQ中实现的。如果希望用户U0仅对队列Q0具有读取权限,可以将U0读取权限设

我正在编写一个移动应用程序,并考虑使用RabbitMQ进行用户到用户的消息传递。据我所知,每个客户机都可以监听它的唯一队列,比如说,在用户id和消息之后,通过发布到其他客户机的队列中。但我担心这种模式是不可靠的,比如说,恶意客户可能会从其他人的队列中读取数据,从而破坏整个计划

有没有办法对RabbitMQ队列/交换机施加基本的读写权限,从而提供安全性?还是我的整个概念都错了,点对点通信根本不是设计的目的?

是在RabbitMQ中实现的。如果希望用户U0仅对队列Q0具有读取权限,可以将U0读取权限设置为^QO$。如果您想要更好地控制用户权限,您必须在应用程序服务器端实现这一点

然而,我得说你的设计没有很好的扩展性。虽然您可以忽略的队列和交换的数量没有任何硬编码限制,但是您应该保持这个数字相当合理,因为它有点资源密集型。100万用户意味着100万个队列/交换进程,如果每个用户都在使用其队列,则可能有100万个已打开的套接字。不确定单个主机是否能正确处理此问题

对于消息传递应用程序,我建议您使用任何持久数据库。RabbitMQ并不真正适合这种用例