如何配置RabbitMQ使删除非空队列时API自动返回错误?
RabbitMQ 非空队列禁止删除实现方法
你要的效果无需开启全局配置,RabbitMQ 管理API本身就原生支持对应的控制参数:
- 直接在DELETE队列的请求URL后追加查询参数
if-empty=true,服务端会自动校验队列是否为空,非空时直接拒绝删除请求 - 非空队列触发删除拦截时,接口会返回
405 Method Not Allowed状态码,响应提示为precondition_failed - queue is not empty - 该参数不需要额外申请权限,只要账号本身有队列删除权限即可正常使用
修改后的调用命令如下:
curl --location --request DELETE 'http://username:password@127.0.0.1:15672/api/queues/%2F/test?if-empty=true'
如果你后续改用AMQP原生客户端操作,对应删除队列时将emptyOk参数设为false即可实现完全一致的效果。
内容的提问来源于stack exchange,提问作者gourav kumar
相关产品推荐
相关产品推荐

