RabbitMQ安装
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