Skip to content

RabbitMQ 安装


Docker 环境

上传脚本

上传到安装脚本到/data/docker/app/rabbitmq 目录下

修改配置

根据需要修改以下配置文件中的配置信息:

/data/docker/app/rabbitmq/compose/compose.yaml

shell
RABBITMQ_DEFAULT_USER: zuoyo # 设置默认用户名
RABBITMQ_DEFAULT_PASS: Zuoyo@xxx # 设置默认密码

安装应用

执行以下命令(首次安装):

cd /data/docker/app/rabbitmq/compose && sh init.sh

执行以上命令后会自动安装并启动应用。

管理应用

重启应用,执行以下命令:

cd /data/docker/app/rabbitmq/compose && docker-compose down && docker-compose up -d

验证安装

管理界面地址:http://服务器地址:31085

Windows 环境

RabbitMQ 是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ 服务器是用 Erlang 语言编写的,而群集和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。

下载 Erlang 和 RabbitMQ 安装包:ErlangOTP_win64_21.0.1.exe 和 rabbitmq-server-3.7.8.exe。

下载 RabbitMQ 和 ErlangOTP

ErlangOTP 阿里云快速下载:https://zysd-shanghai.oss-cn-shanghai.aliyuncs.com/soft/windows/Erlang/ErlangOTP_win64_21.0.1.exe

rabbitmq 阿里云快速下载:https://zysd-shanghai.oss-cn-shanghai.aliyuncs.com/soft/windows/rabbitmq/rabbitmq-server-3.7.8.exe

安装 Erlang 语言

双击 ErlangOTP_win64_21.0.1.exe 文件按向导安装,本文档安装实例是在 D:\\Program Files\\目录下

安装 RabbitMQ

双击 rabbitmq-server-3.7.8.exe 文件按向导安装

进入 D:\\Program Files\\RabbitMQ Server\\rabbitmq_server-3.7.8\\sbin 目录

双击 rabbitmq-server.bat 启动

关闭 RabbitMQ

进入 D:\\Program Files\\RabbitMQ Server\\rabbitmq_server-3.7.8\\sbin 目录

命令行窗口执行:

rabbitmqctl stop

RabbitMQ 状态

进入 D:\\Program Files\\RabbitMQ Server\\rabbitmq_server-3.7.8\\sbin 目录

命令行窗口执行:

rabbitmqctl status

开启后台管理页面

安装 RabbitMQ-Plugins

进入 D:\\Program Files\\RabbitMQ Server\\rabbitmq_server-3.7.8\\sbin 目录

命令行窗口执行:

rabbitmq-plugins enable rabbitmq_management

回车安装

后台管理访问地址:http://localhost:15672

默认账号密码都是:guest

添加用户

进入 D:\\Program Files\\RabbitMQ Server\\rabbitmq_server-3.7.8\\sbin 目录

命令行窗口执行:

rabbitmqctl add_user 账号 密码

命令行窗口执行:

rabbitmqctl add_user customer Ewsd@159357

删除用户

进入 D:\\Program Files\\RabbitMQ Server\\rabbitmq_server-3.7.8\\sbin 目录

命令行窗口执行:

rabbitmqctl delete_user username

修改密码

进入 D:\\Program Files\\RabbitMQ Server\\rabbitmq_server-3.7.8\\sbin 目录

命令行窗口执行:

rabbimqctl change_password username newpassword

分配用户标签

customer 为要赋予 administrator 权限的刚创建的那个账号的名字,Tag 可以为 administrator,monitoring,management

进入 D:\\Program Files\\RabbitMQ Server\\rabbitmq_server-3.7.8\\sbin 目录

命令行窗口执行:

rabbitmqctl set_user_tags customer administrator

设置权限

即开启远程访问

(如果需要远程连接,例如 java 项目中需要调用 mq,则一定要配置,否则无法连接到 mq,admin 为要赋予远程访问权限的刚创建的那个账号的名字,必须运行着 rabbitmq 此命令才能执行)

./rabbitmqctl set_permissions -p “/“ customer “.*” “.*” “.*”

或通过浏览器登陆界面登陆设置

(windows 登陆 http://localhost:5672/ 可以使用账户 guest,密码 guest 来登陆,登陆成功之后,点击 admin 选项卡,即可看到账户名,点击账户名,下方有 set topic permission 按钮,点击即可)

进入 E:\\wwwroot\\java\\ewsdSC\\script\\windows 目录,双击 mvn-build.bat 文件运行,命令提示窗口中输入 E:\\wwwroot\\java\\ewsdSC 目录下要编译的微服务项目文件夹名,回车即可。

添加 MQTT 协议

MQTT(消息队列遥测传输)是 ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP 协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议,为此,它需要一个消息中间件 。

MQTT 是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT 协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。

rabbitmq-plugins enable rabbitmq\_mqtt
rabbitmq-plugins enable rabbitmq\_web\_mqtt

Liunx 环境

RabbitMQ 是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ 服务器是用 Erlang 语言编写的,而群集和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。

下载 Erlang 和 RabbitMQ 安装包:rlang-21.1-1.el7.centos.x86_64.rpm

和 rpm -ivh rabbitmq-server-3.7.8-1.el7.noarch.rpm。

下载 rlang 和 rabbitmq

wget https://zysd-shanghai.oss-cn-shanghai.aliyuncs.com/soft/linux/erlang/erlang-21.1-1.el7.centos.x86_64.rpm
wget https://zysd-shanghai.oss-cn-shanghai.aliyuncs.com/soft/linux/rabbitmq/rabbitmq-server-3.7.8-1.el7.noarch.rpm

本站 rabbitmq 以 3.7.8 版本为例

安装 Erlang

Erlang 是一种通用的面向并发的编程语言,目的是创造一种可以应对大规模并发活动的编程语言和运行环境。

rpm -ivh erlang-21.1-1.el7.centos.x86_64.rpm

安装 RabbitMQ

rpm -ivh rabbitmq-server-3.7.8-1.el7.noarch.rpm

启动 RabbitMQ

cd /usr/lib/rabbitmq/bin
后台启动:./rabbitmq-server start -detached

关闭 RabbitMQ

./rabbitmqctl stop

RabbitMQ 状态

./rabbitmqctl status

开启后台管理页面

./rabbitmq-plugins enable rabbitmq_management

后台管理访问地址:http://localhost:15672

默认账号密码都是:guest

添加用户

./rabbitmqctl add_user 账号 密码
./rabbitmqctl add_user customer Ewsd@159357

删除用户

./rabbitmqctl delete_user username

修改密码

./rabbimqctl change_password username newpassword

分配用户标签

customer 为要赋予 administrator 权限的刚创建的那个账号的名字,Tag 可以为 administrator,monitoring,management

./rabbitmqctl set_user_tags customer administrator

设置权限

即开启远程访问

(如果需要远程连接,例如 java 项目中需要调用 mq,则一定要配置,否则无法连接到 mq,admin 为要赋予远程访问权限的刚创建的那个账号的名字,必须运行着 rabbitmq 此命令才能执行)

./rabbitmqctl set_permissions -p "/" customer ".*" ".*" ".*"

设置开机自启

chkconfig rabbitmq-server on

guest 用户设置远程登陆

在访问管理界面使用 guest 用户登录时出现 login failed 错误。

到服务器上查询日志显示出现错误的原因是:HTTP access denied: user ‘guest’ - User can only log in via localhost。

解决:

rabbitmq 从 3.3.0 开始禁止使用 guest/guest 权限通过除 localhost 外的访问。我的是 3.6

如果想使用 guest/guest 通过远程机器访问,需要在 rabbitmq 配置文件中(找到/rabbitmq_server-3.6.14/ebin 下面的 rabbit.app 文件)中设置 loopback_users 为[]。

找到/rabbitmq_server-3.6.14/ebin 下面的 rabbit.app 文件文件完整内容如下(注意后面的半角句号):

找到:loopback_users 里的>删除。

[{rabbit, [{loopback_users, []}]}].

然后重启

systemctl restart rabbitmq-server.service

添加 MQTT 协议

MQTT(消息队列遥测传输)是 ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP 协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议,为此,它需要一个消息中间件 。

MQTT 是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT 协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。

rabbitmq-plugins enable rabbitmq\_mqtt
rabbitmq-plugins enable rabbitmq\_web\_mqtt

致力于为企业信息化品牌建设提供强力驱动