0%

RabbitMQ管理

消息队列中间件是分布式系统中重要的组件,主要解决应用耦合、异步消息、流量削锋、日志处理四大场景,实现高性能,高可用,可伸缩和最终一致性架构。使用较多的消息队列有ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ等。

一、用户管理

  1. 新增用户 rabbitmqctl add_user username password
  2. 删除用户 rabbitmqctl delete_user username
  3. 修改密码 rabbitmqctl change_password username new_password
  4. 查看用户 rabbitmqctl list_users

二、角色管理

  1. 角色分类

    • 超级管理员(administrator):可登陆管理控制台,可查看所有的信息,并且可以对用户,策略(policy)进行操作。
    • 监控者(monitoring):可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)。
    • 策略制定者(policymaker):可登陆管理控制台, 同时可以对policy进行管理。但无法查看节点的相关信息。
    • 普通管理者(management):仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。
    • 其他:无法登陆管理控制台,通常就是普通的生产者和消费者。
  2. 角色管理

    • 设置角色 rabbitmqctl set_user_tags User Tag[, Tag]

三、虚拟机管理

  1. 查看虚拟机 rabbitmqctl list_vhosts
  2. 添加虚拟机 rabbitmqctl add_vhost <vhost_name>
  3. 删除虚拟机 rabbitmqctl delete_vhost <vhost_name>

四、权限管理

用户权限指的是用户对exchange,queue的操作权限,包括配置权限,读写权限。配置权限会影响到exchange,queue的声明和删除,读写权限影响到从queue里取消息,向exchange发送消息以及queue和exchange的绑定(bind)操作。

rabbitmqctl [--node <node>] [--longnames] [--quiet] set_permissions [--vhost <vhost>] <username> <conf> <write> <read>,权限配置包括:配置(队列和交换机的创建和删除)、写(发布消息)、读(有关消息的任何操作,包括清除这个队列):

conf:一个正则表达式match哪些配置资源能够被该用户访问

write:一个正则表达式match哪些配置资源能够被该用户读

read:一个正则表达式match哪些配置资源能够被该用户访问

  1. 设置权限 rabbitmqctl set_permissions -p vhost_liuyulong liuyulong ".*" ".*" ".*"
    • -p和–vhost效果一样
  2. 查看权限 rabbitmqctl list_permissions [-p vhost_liuyulong]
  3. 查看指定用户的权限信息 rabbitmqctl list_user_permissions liuyulong
  4. 清除指定用户的权限信息 rabbitmqctl clear_permissions [-p vhost] liuyulong

可通过rabbitmqctl -h查看各种命令操作

五、参考

  1. 参考一