简述
RabbitMQ
是一个开源的遵循AMQP
协议实现的基于Erlang
语言编写,支持多种客户端(语言),用于在分布式系统中存储消息,转发消息,具有高可用,高可扩性,易用性等特征的消息中间件。
安装
环境准备
centos7.x
安装Erlang
- 查看系统版本号
[root@iZm5e3zk8pqk27ssml4nblZ local]# lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.9.2009 (Core)
Release: 7.9.2009
Codename: Core
- 下载安装Erlang
[root@iZm5e3zk8pqk27ssml4nblZ local]# wget https://packages.erlang-solutions.com/erlang-solutions-2.0-1.noarch.rpm
[root@iZm5e3zk8pqk27ssml4nblZ local]# rpm -Uvh erlang-solutions-2.0-1.noarch.rpm
[root@iZm5e3zk8pqk27ssml4nblZ local]# yum install -y erlang
- 安装成功
[root@iZm5e3zk8pqk27ssml4nblZ local]# erl -v
Erlang/OTP 24 [erts-12.2.1] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1]
Eshell V12.2.1 (abort with ^G)
1>
安装socat
[root@iZm5e3zk8pqk27ssml4nblZ local]# yum install -y socat
安装rabbitMQ
#下载很慢,建议在本地下载之后,再进行上传
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.13/rabbitmq-server-3.9.13-1.el7.noarch.rpm
rpm -Uvh rabbitmq-server-3.9.13-1.el7.noarch.rpm
启动与关闭
# 启动服务
> systemctl start rabbitmq-server
# 查看服务状态
> systemctl status rabbitmq-server
# 停止服务
> systemctl stop rabbitmq-server
# 开机启动服务
> systemctl enable rabbitmq-server
相关端口介绍
5672:RabbitMQ的通讯端口
25672:RabbitMQ的节点间的CLI通讯端口是
15672:RabbitMQ HTTP_API的端口,管理员用户才能访问,用于管理RabbitMQ,需要启动Management插件。
1883,8883:MQTT插件启动时的端口。
61613、61614:STOMP客户端插件启用的时候的端口。
15674、15675:基于webscoket的STOMP端口和MOTT端口
管理界面安装
默认情况下,rabbitmq是没有安装web端的客户端插件,需要安装才可以生效
[root@iZm5e3zk8pqk27ssml4nblZ local]# rabbitmq-plugins enable rabbitmq_management
Enabling plugins on node rabbit@iZm5e3zk8pqk27ssml4nblZ:
rabbitmq_management
The following plugins have been configured:
rabbitmq_management
rabbitmq_management_agent
rabbitmq_web_dispatch
Applying plugin configuration to rabbit@iZm5e3zk8pqk27ssml4nblZ...
The following plugins have been enabled:
rabbitmq_management
rabbitmq_management_agent
rabbitmq_web_dispatch
started 3 plugins.
再重启服务
[root@iZm5e3zk8pqk27ssml4nblZ local]# systemctl restart rabbitmq-server
访问
通过服务器ip+15672端口即可访问
账户
说明:rabbitmq有一个默认账号和密码是:guest 默认情况只能在localhost本机下访问,所以需要添加一个远程登录的用户。
新增账户
[root@iZm5e3zk8pqk27ssml4nblZ local]# rabbitmqctl add_user admin admin #用户名 密码
Adding user "admin" ...
Done. Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more.
账户授权
[root@iZm5e3zk8pqk27ssml4nblZ local]# rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator] ...
- 账户权限类别:
1、administrator 可以登录控制台、查看所有信息、可以对rabbitmq进行管理
2、monitoring 监控者 登录控制台,查看所有信息
3、policymaker 策略制定者 登录控制台,指定策略
4、managment 普通管理员 登录控制台
为账户添加资源权限
[root@iZm5e3zk8pqk27ssml4nblZ local]# rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
Setting permissions for user "admin" in vhost "/" ...
登录成功
总结
- rabbitmqctl add_user 账号 密码
- rabbitmqctl set_user_tags 账号 administrator
- rabbitmqctl change_password Username Newpassword 修改密码
- rabbitmqctl delete_user Username 删除用户
- rabbitmqctl list_users 查看用户清单
- rabbitmqctl set_permissions -p / 用户名 "." "." ".*" 为用户设置administrator角色
- rabbitmqctl set_permissions -p / root "." "." ".*" 为账户添加资源权限