RabbitMQ vhost管理
RabbitMQ vhost 全称为Virtual Host(虚拟主机),一个broker里可以开设多个vhost,用作不同用户的权限分离。权限控制组,用户只能关联到一个vhost上,一个vhost中可以有若干个Exchange和Queue,默认的vhost是”/”
一、通过RabbitMQ管理后台管理vhost
http://localhost:15672/#/vhosts
1、添加一个虚拟主机
2、对虚拟主机设置权限和删除虚拟主机
在虚拟主机列表中对着想要操作的虚拟主机点击,进行操作页面
二、通过RabbitMQ 命令行管理vhost
virtual_host管理
add_vhost <vhost>
delete_vhost <vhost>
list_vhosts [<vhostinfoitem> ...]
set_permissions [-p <vhost>] <user> <conf> <write> <read>
conf:正则表达式匹配哪些配置资源能够被该用户访问
conf:正则表达式匹配哪些配置资源能够被该用户读
conf:正则表达式匹配哪些配置资源能够被该用户访问
clear_permissions [-p <vhost>] <username>
list_permissions [-p <vhost>]
list_user_permissions <username>
示例:
1、创建vhost
D:\Worksoftware\RabbitMQServer\rabbitmq_server-3.6.3\sbin>rabbitmqctl add_vhost /testvhost
Creating vhost "/testvhost" ...
2、查看vhost列表
D:\Worksoftware\RabbitMQServer\rabbitmq_server-3.6.3\sbin>rabbitmqctl list_vhosts
Listing vhosts ...
/testvhost
/
3、对vhost设置权限
D:\Worksoftware\RabbitMQServer\rabbitmq_server-3.6.3\sbin>rabbitmqctl set_permissions -p /testvhost test1 ConfP WriteP ReadP
Setting permissions for user "test1" in vhost "/testvhost" ...
4、查看指定vhost的权限
D:\Worksoftware\RabbitMQServer\rabbitmq_server-3.6.3\sbin>rabbitmqctl list_permissions -p /testvhost
Listing permissions in vhost "/testvhost" ...
test1 ConfP WriteP ReadP
5、查看指定用户的权限
D:\Worksoftware\RabbitMQServer\rabbitmq_server-3.6.3\sbin>rabbitmqctl list_user_permissions test1
Listing permissions for user "test1" ...
/testvhost ConfP WriteP ReadP
6、清除权限
D:\Worksoftware\RabbitMQServer\rabbitmq_server-3.6.3\sbin>rabbitmqctl clear_permissions -p /testvhost test1
Clearing permissions for user "test1" in vhost "/testvhost" ...
7、设置所有权限
D:\Worksoftware\RabbitMQServer\rabbitmq_server-3.6.3\sbin>rabbitmqctl set_permissions -p /testvhost test1 ".*" ".*" ".*"
Setting permissions for user "test1" in vhost "/testvhost" ...
RabbitMQ:基本命令
rabbitmq的安装、启动和停止
rabbitmq-service.bat install
rabbitmq-service.bat start
rabbitmq-service.bat stop
列出所有queue
rabbitmqctl list_queues
列出指定queue的信息
rabbitmqctl list_queues [the queue name] messages_ready messages_unacknowledged
列出所有exchange
rabbitmqctl list_exchanges
列出所有binding
rabbitmqctl list_bindings
安装基于web的管理插件
rabbitmq-plugins.bat enable rabbitmq_management
应用和集群管理
1.停止RabbitMQ应用,关闭节点
# rabbitmqctl stop
2.停止RabbitMQ应用
# rabbitmqctl stop_app
3.启动RabbitMQ应用
# rabbitmqctl start_app
4.显示RabbitMQ中间件各种信息
# rabbitmqctl status
5.重置RabbitMQ节点
# rabbitmqctl reset
# rabbitmqctl force_reset
从它属于的任何集群中移除,从管理数据库中移除所有数据,例如配置过的用户和虚拟宿主, 删除所有持久化的消息。
force_reset命令和reset的区别是无条件重置节点,不管当前管理数据库状态以及集群的配置。如果数据库或者集群配置发生错误才使用这个最后 的手段。
注意:只有在停止RabbitMQ应用后,reset和force_reset才能成功。
6.循环日志文件
# rabbitmqctl rotate_logs[suffix]
7.集群管理
# rabbitmqctl cluster clusternode…
用户管理
1.添加用户
# rabbitmqctl add_user username password
2.删除用户
# rabbitmqctl delete_user username
3.修改密码
# rabbitmqctl change_password username newpassword
4.列出所有用户
# rabbitmqctl list_users
权限控制
1.创建虚拟主机
# rabbitmqctl add_vhost vhostpath
2.删除虚拟主机
# rabbitmqctl delete_vhost vhostpath
3.列出所有虚拟主机
# rabbitmqctl list_vhosts
4.设置用户权限
# rabbitmqctl set_permissions [-p vhostpath] username regexp regexp regexp
5.清除用户权限
# rabbitmqctl clear_permissions [-p vhostpath] username
6.列出虚拟主机上的所有权限
# rabbitmqctl list_permissions [-p vhostpath]
7.列出用户权限
# rabbitmqctl list_user_permissions username