【问题标题】:RabbitMQ Per-Connection Queue Creation and DeletionRabbitMQ Per-Connection 队列的创建和删除
【发布时间】:2013-10-03 14:46:31
【问题描述】:

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

最后,我想限制连接以仅创建独占队列(连接关闭时将自动删除),并且仅将此类队列绑定到我允许的主题列表,并为每个用户帐户配置。

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

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

【问题讨论】:

    标签: rabbitmq amqp


    【解决方案1】:

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

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

    【讨论】:

    • 糟糕的解决方法,因为它需要太多的工作来支持多种语言,但由于rabbitmq acl系统的限制,这是唯一的方法。我可能会预先创建每个队列并自己适当地绑定它,让每个用户只能从自己的队列中读取。
    猜你喜欢
    • 1970-01-01
    • 2011-10-08
    • 2020-10-24
    • 2020-04-10
    • 2015-06-16
    • 2013-11-23
    • 2012-07-12
    • 2022-01-20
    • 1970-01-01
    相关资源
    最近更新 更多