背景
公司有个内部小型项目需要一个消息中间件,对性能要求不是很高,因为公司都是java技术栈,不是异构化的系统。所以选择了搭建比较快捷的RabbitMQ。
安装过程
拉取镜像
docker pull rabbitmq:management
启动镜像(单点启动)
docker run -d --name rabbit -v /developenv/docker_volumes/[rabbitmq:/var/lib/rabbitmq](http://rabbitmq/var/lib/rabbitmq) -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 rabbitmq:management
web管理账号设置
image.png外网登录需要账号密码,增加 mqadmin 管理账号
rabbitmqctl add_user mqadmin 'password' #添加用户,后面两个参数分别是用户名和密码
rabbitmqctl set_permissions -p / mqadmin ".*" ".*" ".*" #添加权限
rabbitmqctl set_user_tags mqadmin administrator #修改用户角色
用户角色分类
none:无法登录控制台
不能访问 management plugin,通常就是普通的生产者和消费者。
management:普通管理者。
仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对policies进行管理。用户可以通过AMQP做的任何事外加:
列出自己可以通过AMQP登入的virtual hosts
查看自己的virtual hosts中的queues, exchanges 和 bindings
查看和关闭自己的channels 和 connections
查看有关自己的virtual hosts的“全局”的统计信息,包含其他用户在这些virtual hosts中的活动。
policymaker:策略制定者。
management可以做的任何事外加:
查看、创建和删除自己的virtual hosts所属的policies和parameters
monitoring:监控者。
management可以做的任何事外加:
列出所有virtual hosts,包括他们不能登录的virtual hosts
查看其他用户的connections和channels
查看节点级别的数据如clustering和memory使用情况
查看真正的关于所有virtual hosts的全局的统计信息
同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
administrator:超级管理员。
policymaker和monitoring可以做的任何事外加:
创建和删除virtual hosts
查看、创建和删除users
查看创建和删除permissions
关闭其他用户的connections
用户相关命令
查看用户列表
rabbitmqctl list_users
增加用户
rabbitmqctl add_user username 'password'
设置角色
rabbitmqctl set_user_tags username administrator
修改用户密码
rabbitmqctl change_password username 'newpasswd'
删除用户
rabbitmqctl delete_user username
用户赋权
// 使用户user1具有vhost1这个virtual host中所有资源的配置、写、读权限以便管理其中的资源
rabbitmqctl set_permissions -p vhost1 username '.*' '.*' '.*'
查看权限
rabbitmqctl list_user_permissions username
查看vhost1中权限
rabbitmqctl list_permissions -p vhost1
清除权限
rabbitmqctl clear_permissions [-p VHostPath] username
网友评论