• RabbitMQ中VirtualHost相关设置、SpringBoot中集成常见问题总结


    wshanshi:总结记录…便于回顾…

    一、VirtualHost相关设置

    1.1、创建VirtualHost

    rabbitmqctl add_vhost 虚拟服务器名称
    
    • 1

    如:rabbitmqctl add_vhost test

    1.2、用户、权限相关设置

    1.2.1、创建用户
    rabbitmqctl add_user 用户名 密码
    
    • 1

    如:rabbitmqctl add_user wss admin

    1.2.2、删除用户
    rabbitmqctl delete_user 用户名
    
    • 1

    如:rabbitmqctl delete_user wss

    1.2.3、设置用户权限
    rabbitmqctl set_permissions -p / 用户名 ".*" ".*" ".*"
    
    • 1

    如:rabbitmqctl set_permissions -p / wss “." ".” “.*”

    或者:rabbitmqctl set_permissions -p wss “." ".” “.*”

    注意:加/表示可以访问所有的虚拟服务器,如果指定某个虚拟服务器名称,则表示该用户只能访问这一个虚拟服务器。".*"表示正则配置,读,写相关权限。

    这是命令行操作,同样管控台也可以设置,如下图所示。

    在这里插入图片描述

    具体的正则配置,感兴趣的话,大家官网嗨皮哈~ 楼主这里就不多说了。
    图片(极乐净土)

    1.2.4、配置用户角色
    rabbitmqctl set_user_tags 用户名 角色类型
    
    • 1

    如:rabbitmqctl set_user_tags wss administrator

    角色分为:administrator(管理员)、monitoring(监控者)、policymaker(策略制定者)、management(普通用户)、impersonator(模仿者)、none(不能访问)。角色对应权限按此顺序从大到小。

    同样,管控台也可操作。如下图所示,设置角色会自动填充,并提示相应权限。

    在这里插入图片描述

    如:管理员角色

    在这里插入图片描述

    二、rabbitmq集成常见问题

    2.1、启动报错:Failed to check/redeclare auto-delete queue(s).

    2.1.1、解决方法1

    最大一种可能:跑容器时,只-p映射了web管控台的端口,未-p映射通信接口5672.

    15672为管控台端口号,5672为通信端口号,25672为 集群通信端口号。

    重跑一下即可:

        docker run -d --name rabbitmq -p 15672:15672 -p 5672:5672 rabbitmq:management
    
    • 1

    不瞒您说,楼主就曾犯过这个❌

    在这里插入图片描述

    2.1.2、解决方法2

    查看项目配置文件中virtual-host是否和管控台一致。管控台没有/,配置文件中也不需要加/

     rabbitmq:
        host: xxxxxx
        port: 5672
        virtual-host: /xxx
        username: xxx
        password: xxx
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    2.1.3、解决方法3

    账号或权限问题: 尝试该账号能否正常登录管控台、尝试设置该用户账号为管理员权限

    具体步骤,参考1.2、用户权限相关设置。

    2.2、connection error; protocol method: #method(reply-code=530, reply-text=NOT_ALLOWED - access to vhost ‘xxxx’ refused for user ‘xx’, class-id=10, method-id=40)

    2.2.1、报错原因

    从提示可以看出:access to vhost ‘xxxx’ refused for user ‘xx’,表示没有权限

    2.2.2、解决方法

    为用户设置权限,在Virtua lHost:xxxx中,set permission里面,为用户xx设置权限即可

    在这里插入图片描述

    设置完成后,如下。
    在这里插入图片描述

  • 相关阅读:
    js实现在可视区内,文字图片动画效果
    php脚本执行timeout
    18.Pandas的数据转换函数map、apply、applymap
    ansible playbook实现磁盘格式化及文件系统挂载
    使用VitePress搭建及部署vue组件库文档
    我用开天平台做了一个字符串检查API,hin 简单~~
    AI绘画升温、AI写作降温,AIGC玩“变脸”
    如何利用Api接口获取手机当前的网络位置信息
    DSA之图(1):什么是图
    25栈和队列-理解栈和队列
  • 原文地址:https://blog.csdn.net/weixin_43770545/article/details/127639050