赞
踩
Virtual Hosts的使用场景
多租户的使用场景,比如主机资源紧缺情况下开发和测试共用一个RabbitMQ,可以使用Virtual Hosts将开发和测试隔离开
从上图可以看到,Admin界面可以看到User、VirtulalHost、Policies、Limits、Cluster 等几个选项,今天要介绍的VirtualHost就在其中
RabbitMq的 VirtualHost(虚拟消息服务器),每个VirtualHost相当于一个相对独立的RabbitMQ服务器,像mysql有数据库的概念并且可以指定用户对库和表等操作的权限。每个VirtualHost之间是相互隔离的,exchange-交换机、queue-队列、message-消息 不能互通
拿数据库(用MySQL)来对比:RabbitMq相当于MySQL,RabbitMq中的VirtualHost就相当于MySQL中的一个db库,你可以在mysql中新建很多库,设置库的权限操作。
新建一个VirtualHost ,可以看到
默认的 / host下面有两个用户 admin、guest
新建的 jzj 下面只有1个用户 admin
我们先看User信息,有2个User,admin和guest,点开Virtual 也可以看到用户信息
新建一个User信息test
选择jzj 虚拟消息服务器,然后选择用户test,赋予test权限
可以看到 virtualHost jzj 已经添加了用户 test,现在拥有两个用户admin和test
当然我们也可以用命令来新建用户和赋予权限,参考 RabbitMQ系列(一)https://editor.csdn.net/md/?articleId=106609072
创建用户并配置权限 创建用户: rabbitmqctl add_user 用户名 密码 例如: rabbitmqctl add_user test test 为用户配置权限: rabbitmqctl set_permissions -p / 用户名 ".*" ".*" ".*" 例如: rabbitmqctl set_permissions -p jzj test ".*" ".*" ".*" 其中[/]可以访问默认虚拟服务器(virtual host),如果改成虚拟服务器名称jzj,表示该用户能访问这个虚拟服务器 配置角色: rabbitmqctl set_user_tags 用户名 角色类型 例如: rabbitmqctl set_user_tags test administrator
配置角色
rabbitmqctl set_user_tags [user] [role]
RabbitMQ中的角色分为如下五类:none、management、policymaker、monitoring、administrator
不能访问 management plugin
用户可以通过AMQP做的任何事外加:
列出自己可以通过AMQP登入的virtual hosts
查看自己的virtual hosts中的queues, exchanges 和 bindings
查看和关闭自己的channels 和 connections
查看有关自己的virtual hosts的“全局”的统计信息,包含其他用户在这些virtual hosts中的活动。
management可以做的任何事外加:
查看、创建和删除自己的virtual hosts所属的policies和parameters
management可以做的任何事外加:
列出所有virtual hosts,包括他们不能登录的virtual hosts
查看其他用户的connections和channels
查看节点级别的数据如clustering和memory使用情况
查看真正的关于所有virtual hosts的全局的统计信息
policymaker和monitoring可以做的任何事外加:
创建和删除virtual hosts
查看、创建和删除users
查看创建和删除permissions
关闭其他用户的connections
下一篇介绍 实战 RabbitMQ进阶-Queue队列特性 (一)简单队列
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。