• 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设置权限即可

    在这里插入图片描述

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

  • 相关阅读:
    NaiveUI中看起来没啥用的组件(文字渐变)实现原来这么简单
    好用的PDF编辑软件有哪些?这几款工具建议收藏
    Flink 的集群资源管理
    【回归预测】基于DBO-BP(蜣螂优化算法优化BP神经网络)的回归预测 多输入单输出【Matlab代码#68】
    [附源码]计算机毕业设计JAVASSM归途中流浪动物收容与领养管理系统
    Mysql--高级(自定义函数、存储过程、视图、事务、索引)
    【51单片机论流水灯的工作原理】2023-10-3
    数据结构:树
    【课程作业】最优化理论与方法:第一次作业
    【笔记-OrCAD】WARNING(ORCAP-36038)解决办法
  • 原文地址:https://blog.csdn.net/weixin_43770545/article/details/127639050