RabbitMQ 安装和使用
一、安装依赖环境
-
在
http://www.rabbitmq.com/which-erlang.html
页面查看安装rabbitmq需要安装erlang对应的版本 -
在
https://github.com/rabbitmq/erlang-rpm/releases
页面找到需要下载的erlang版本,erlang-*.centos.x86_64.rpm 就是centos版本的。 -
复制下载地址后,使用wget命令下载
wget -P /home/download https://github.com/rabbitmq/erlang-rpm/releases/download/v23.3.3/erlang-23.3.3-1.el7.x86_64.rpm
-
安装 Erlang
sudo rpm -Uvh /home/download/erlang-23.3.3-1.el7.x86_64.rpm
-
安装 socat
sudo yum install -y socat
二、安装RabbitMQ
- 在官方下载页面找到CentOS7版本的下载链接,下载rpm安装包
wget -P /home/download https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.15/rabbitmq-server-3.8.15-1.el7.noarch.rpm
提示:可以在 https://github.com/rabbitmq/rabbitmq-server/tags
下载历史版本
- 安装RabbitMQ
sudo rpm -Uvh /home/download/rabbitmq-server-3.8.15-1.el7.noarch.rpm
三、启动和关闭
-
启动服务
sudo systemctl start rabbitmq-server
-
查看状态
sudo systemctl status rabbitmq-server
-
停止服务
sudo systemctl stop rabbitmq-server
-
设置开机启动
sudo systemctl enable rabbitmq-server
四、开启Web管理插件
-
开启插件
rabbitmq-plugins enable rabbitmq_management
说明:rabbitmq有一个默认的guest用户,但只能通过localhost访问,所以需要添加一个能够远程访问的用户。 -
添加用户
rabbitmqctl add_user admin admin
-
为用户分配操作权限
rabbitmqctl set_user_tags admin administrator
-
为用户分配资源权限
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
五、防火墙添加端口
- RabbitMQ 服务启动后,还不能进行外部通信,需要将端口添加都防火墙
- 添加端口
sudo firewall-cmd --zone=public --add-port=4369/tcp --permanent
sudo firewall-cmd --zone=public --add-port=5672/tcp --permanent
sudo firewall-cmd --zone=public --add-port=25672/tcp --permanent
sudo firewall-cmd --zone=public --add-port=15672/tcp --permanent
- 重启防火墙
sudo firewall-cmd --reload
RabbitMQ基本配置
RabbitMQ 有一套默认的配置,能够满足日常开发需求,如果需要修改,需要自己创建一个配置文件
touch /etc/rabbitmq/rabbitmq.conf
配置文件示例:
https://github.com/rabbitmq/rabbitmq-server/blob/master/deps/rabbit/docs/rabbitmq.conf.example
配置项说明:
https://www.rabbitmq.com/configure.html#config-items
RabbitMQ 会绑定一些端口,安装完后,需要将这些端口添加至防火墙。
-
4369:是Erlang的端口/结点名称映射程序,用来跟踪节点名称监听地址,在集群中起到一个类似DNS的作用。
-
5672, 5671:AMQP 0-9-1 和 1.0 客户端端口,没有使用SSL和使用SSL的端口。
-
25672:用于RabbitMQ节点间和CLI工具通信,配合4369使用。
-
15672:HTTP_API端口,管理员用户才能访问,用于管理RbbitMQ,需要启用management插件。
-
61613,61614:当STOMP插件启用的时候打开,作为STOMP客户端端口(根据是否使用TLS选择)。
-
1883, 8883:当MQTT插件启用的时候打开,作为MQTT客户端端口(根据是否使用TLS选择)。
-
15674:基于WebSocket的STOMP客户端端口(当插件Web STOMP启用的时候打开)
-
15675:基于WebSocket的MQTT客户端端口(当插件Web MQTT启用的时候打开)
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
-
查看其他用户的connections和channels
-
查看节点级别的数据如clustering和memory使用情况
-
查看真正的关于所有virtual hosts的全局的统计信息
-
-
administrator:policymaker和monitoring可以做的任何事外加:
-
创建和删除virtual hosts
-
查看、创建和删除users
-
查看创建和删除permissions
-
关闭其他用户的connections
-