我得到的错误:“ACCESS_REFUSED - configure access to queue 'xxx' refused for user”当尝试使用RabbitMQ中的AMQP 1.0插件使用现有队列时。
用户具有只读权限。换句话说,配置和写入Regexp设置为“^$"。
队列已经存在-只是尝试使用它。在attach:attach(name:my-receiver,handle:0,role:True,source:source(address:myqueue,durable:1),target:target())时发生错误
如果我添加configure权限,它可以工作,但是为什么需要configure权限呢?这就像它试图声明队列,但是我希望它最多做一个被动声明。
有什么建议吗?
1条答案
按热度按时间5lwkijsr1#
感谢RabbitMQ Discord聊天中的“thorhalvor”,找到了一个解决方案。结果表明,如果您将队列地址前缀为
/amq/queue/
,则不会触发declare
,并且不需要配置权限。'kjnilsson'提到这可能在RabbitMQ 4.0中得到改进-最有可能删除隐式队列声明并简化寻址。
文档已经更新,澄清了这种不同的行为。(参见https://github.com/rabbitmq/rabbitmq-server/tree/main/deps/rabbitmq_amqp1_0#routing-and-addressing)。
链接到Discord帖子和线程: