高级特性部分偏运维,讲了很多配置和命令,简单了解,重点了解一下集群和负载均衡。
1、RabbitMQ管理
(1)多租户与权限
每一个RabbitMQ服务器能创建虚拟的消息服务器(vhost),拥有独立的Queue、Exchange、Bindings、权限等,提供了逻辑上的分离,默认创建的vhost为“/”,权限控制以vhost为单位。
rabbitmqctl是用来管理RabbitMQ中间件的命令行工具,连接各个RabbitMQ节点来执行所有操作,语法如下:
rabbitmqctl [-n node] [-t timeout] [-q] {command} [command options ...],默认的节点是rabbit@hostname,可以使用rabbitmqctl来分配vhost、设置权限、添加用户、管理集群、网络分区等所有操作。
(2)用户管理
用户是访问控制的基本单元,单个用户可以跨越多个vhost授权,有nono、management(可以访问Web管理页面)、policymaker(management所有权限,管理策略和参数)、monitoring(management所有权限,看到所有connection,channel和node)、administrator(monitoring所有权限,管理用户、vhost、权限等)五种用户角色。
(3)Web端管理
RabbitMQ management插件提供Web管理界面管理上述所有数据,还有监控和统计的功能,涵盖了RabbitMQ管理的所有功能。访问http://localhost:15672/,默认帐号/密码 guest/guest。
通常可以通过rabbitmqctl命令行、Web端和HTTP API三种方式管理RabbitMQ。
2、RabbitMQ配置和运维
RabbitMQ提供了环境变量(节点名称、配置文件地址、节点内部通信端口)、配置文件(TCP监听端口、网络、内存、磁盘设置)、运行时策略和参数(集群层面)三种方式定制化服务。
介绍一下参数和策略,绝大多数配置可以修改rabbitmq.config文件,需要重启Broker,Parameter支持动态修改,有vhost和global(集群)两种级别。策略(Policy)是vhost级别的,匹配多个exchange或者Queue,便于批量管理,也可以动态修改,用来配置federation、镜像、AE、死信队列等。
RabbitMQ集群即使Queue、Exchange都持久化&