消息队列中间件是分布式系统中重要的组件,主要解决应用耦合、异步消息、流量削锋、日志处理四大场景,实现高性能,高可用,可伸缩和最终一致性架构。使用较多的消息队列有ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ等。
一、用户管理
- 新增用户
rabbitmqctl add_user username password
- 删除用户
rabbitmqctl delete_user username
- 修改密码
rabbitmqctl change_password username new_password
- 查看用户
rabbitmqctl list_users
二、角色管理
角色分类
- 超级管理员(administrator):可登陆管理控制台,可查看所有的信息,并且可以对用户,策略(policy)进行操作。
- 监控者(monitoring):可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)。
- 策略制定者(policymaker):可登陆管理控制台, 同时可以对policy进行管理。但无法查看节点的相关信息。
- 普通管理者(management):仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。
- 其他:无法登陆管理控制台,通常就是普通的生产者和消费者。
角色管理
- 设置角色
rabbitmqctl set_user_tags User Tag[, Tag]
- 设置角色
三、虚拟机管理
- 查看虚拟机
rabbitmqctl list_vhosts
- 添加虚拟机
rabbitmqctl add_vhost <vhost_name>
- 删除虚拟机
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哪些配置资源能够被该用户访问
- 设置权限
rabbitmqctl set_permissions -p vhost_liuyulong liuyulong ".*" ".*" ".*"
- -p和–vhost效果一样
- 查看权限
rabbitmqctl list_permissions [-p vhost_liuyulong]
- 查看指定用户的权限信息
rabbitmqctl list_user_permissions liuyulong
- 清除指定用户的权限信息
rabbitmqctl clear_permissions [-p vhost] liuyulong
可通过
rabbitmqctl -h
查看各种命令操作