简述

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

image.png

启动与关闭

# 启动服务
> 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端口即可访问

image.png

账户

说明: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 "/" ...
登录成功

image.png

总结

  • 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 "." "." ".*" 为账户添加资源权限