一、简介
1、关于RabbitMQ
RabbitMQ是一个开源的AMQP实现,服务端用Erlang
语言编写,支持多种客户端。用于在分布式系统存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。
2、RabbitMQ主要端口介绍
RabbitMQ会绑定一些端口,安装完后,需要将这些端口添加至防火墙。
4369
:Erlang的端口/节点名称映射程序,用来跟踪节点名称监听地址,在集群中起到一个类似DNS的作用。- 5672 / 5671:AMQP 0-9-1和1.0客户端端口,没有使用SSL和使用SSL的端口。
- 15672:HTTP_API端口,管理员用户才能访问,用于管理RabbitMQ,需要启用management插件。
- 25672:用于RabbitMQ节点见和CLI工具通信,配合4369使用。
二、RabbitMQ安装
1、安装依赖项socat
sudo yum install -y socat
2、下载Erlang和RabbitMQ
(1) Erlang和RabbitMQ版本关系要求
根据官方提供的Erlang和RabbitMQ的版本对应关系图,以及操作系统版本。这里RabbitMQ的版本选择3.9.9
,Erlang的版本选择23.2
。
备注:版本对应关系图参考Erlang和RabbitMQ版本兼容性对比。
(2) 下载操作系统支持的Erlang和RabbitMQ版本
直接下载RabbitMQ官网提供的Erlang rpm包,选择的版本为:erlang-23.2.7-2.el7。
RabbitMQ选择的版本为:rabbitmq-server-3.9.9-1.el7。
备注:由于CentOS的版本为7,这里下载的是该操作系统版本支持的最大Erlang版本。
(3) 安装Erlang和RabbitMQ
sudo rpm -Uvh /opt/appl/rabbitmq/erlang-23.2.7-2.el7.x86_64.rpm sudo rpm -Uvh /opt/appl/rabbitmq/rabbitmq-server-3.9.9-1.el7.noarch.rpm
三、启动和关闭
1、启动服务
sudo systemctl start rabbitmq-server
2、查看状态
sudo systemctl status rabbitmq-server
3、停止服务
sudo systemctl stop rabbitmq-server
4、设置开机自启
sudo systemctl enable rabbitmq-server
四、RabbitMQ服务器配置
RabbitMQ有一套默认配置,能够满足日常开发需求,如果需要修改,需要自己创建一个配置文件。
touch /etc/rabbitmq/rabbitmq.conf
各操作系统配置文件默认位置如下图,配置文件示例请参考:rabbitmq.conf.example。
五、RabbitMQ管理界面
1、开启插件
rabbitmq-plugins enable rabbitmq_management
2、添加用户
rabbitmqctl add_user admin admin
备注:这里我们添加了用户名和密码都为admin的用户。
3、为用户分配控制台操作权限
rabbitmqctl set_user_tags admin administrator
备注:这里的意思是给admin用户授予RabbitMQ管理控制台administrator
角色。
4、为用户分配资源权限
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
备注:这里配置的是admin用户在virtual host “/” 下的资源读写等权限。
第1个 ".*"代表赋予实体配置权限。
第2个 ".*"代表赋予实体写权限。
第3个 ".*"代表赋予实体读权限。
5、RabbitMQ控制台角色介绍
RabbitMQ的用户角色主要有:none、management、policymaker、monitoring、administrator。
none:不能访问management plugin。
management:用户可以通过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。
- 查看其它yoghurt的connections和channels。
- 查看节点级别的数据,如clustering和memory使用情况。
- 查看真正关于所有virtual hosts的全局统计信息。
administrator
:除policymaker和monitoring还可以做:
- 创建和删除virtual hosts。
- 查看、创建和删除users。
- 查看创建和删除permissions。
- 关闭其它用户的connections。
6、登录RabbitMQ管理界面
前面提到过15672是RabbitMQ控制台端口,浏览器输入http://127.0.0.1:15672
,即可进入登录页面,如下:
备注:用户名和密码都为admin,前面我们已经授予了admin用户adminstrator角色。