RabbitMQ每个连接队列的创建和删除

RabbitMQ每个连接队列的创建和删除,rabbitmq,amqp,Rabbitmq,Amqp,我在一个新项目中采用了RabbitMQ。我需要一个集群环境来支持系统故障和高需求。关于这个问题:每当客户端连接时,队列必须被创建为独占的。如果客户端断开连接,我希望删除队列,释放其资源。此外,对主题的队列绑定必须受到每个凭据权限的限制 最后,我想约束连接只创建排他的队列(当连接关闭时会自动删除),并且只将这样的队列绑定到我允许的主题列表中,每个用户帐户配置 我既不能将队列创建限制为独占,也不能限制客户端可以订阅的主题。我可以基于vhost施加此约束,但这需要动态创建vhost,可能还需要数百个v

我在一个新项目中采用了RabbitMQ。我需要一个集群环境来支持系统故障和高需求。关于这个问题:每当客户端连接时,队列必须被创建为独占的。如果客户端断开连接,我希望删除队列,释放其资源。此外,对主题的队列绑定必须受到每个凭据权限的限制

最后,我想约束连接只创建排他的队列(当连接关闭时会自动删除),并且只将这样的队列绑定到我允许的主题列表中,每个用户帐户配置

我既不能将队列创建限制为独占,也不能限制客户端可以订阅的主题。我可以基于vhost施加此约束,但这需要动态创建vhost,可能还需要数百个vhost

这在RabbitMQ中可能吗?有更好的方法吗?
谢谢

如果您只希望客户端能够创建独占队列,那么您可能需要编写自己的包装器并从客户端完全提取RabbitMQ。让您的客户机通过此包装器与RabbitMQ对话,并在此处处理队列创建和绑定


这将公开您自己版本的queue_declare,然后调用RabbitMQ queue_declare方法设置exlusive=true。

糟糕的解决方法,因为它需要太多的工作才能支持多种语言,但由于RabbitMQ acl系统的限制,这是唯一的方法。我可能会预先创建每个队列,并自己进行适当的绑定,允许每个用户只从自己的队列中读取。