我一直在一个新项目中采用RabbitMQ。我需要一个集群环境来支持系统故障和高需求。关于问题:每当客户端连接时,队列必须创建为独占的。如果客户端断开连接,我希望删除队列,释放其资源。此外,队列绑定到主题必须受到每个凭据权限的限制。
最后,我想约束连接以仅创建独占队列(在连接关闭时自动删除),并仅将此类队列绑定到我允许的主题列表,按用户帐户配置。
我无法将队列创建限制为独占,也无法限制客户端可以订阅的主题。我可以基于VHOSTS施加此约束,但这需要动态创建VHOSTS,可能还有数百个。
这在RabbitMQ中可能吗?有更好的方法吗?谢谢
如果您只希望客户端能够创建独占队列,您可能需要编写自己的包装器,并将RabbitMQ从客户端中完全抽象出来。让您的客户端通过此包装器与RabbitMQ对话,并在此处处理队列的创建和绑定。
这将公开您自己的queue_declare版本,然后调用RabbitMQqueue_declare方法设置exlusive=true。