一、RabbitMQ
1.1、什么是消息队列
消息队列,即MQ,Message Queue。
1.2、AMQP和JMS
MQ是消息通信的模型,并不是具体实现。现在实现MQ的有两种主流方式:AMQP、JMS。
两者间的区别和联系:
-
JMS是定义了统一的接口,来对消息操作进行统一;AMQP是通过规定协议来统一数据交互的格式
-
JMS限定了必须使用Java语言;AMQP只是协议,不规定实现方式,因此是跨语言的。
-
JMS规定了两种消息模型;而AMQP的消息模型更加丰富
二、下载安装
There are two ways to install the most recent version of RabbitMQ:
- Installing the package using Yum repositories on Package Cloud or Bintray (this option is highly recommended)
- 在Package Cloud或Bintray上使用Yum存储库安装包(强烈推荐使用此选项)
- Downloading the package and installing it with rpm. This option will require manual installation of all package dependencies.
- 下载包并使用rpm安装它。此选项要求手动安装所有包依赖项。
2.1、RabbitMQ Erlang版本要求
具体查看:https://www.rabbitmq.com/which-erlang.html
2.2、下载合适的erlang版本
https://packagecloud.io/rabbitmq/erlang
2.3、安装erlang依赖
//安装依赖
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash
//安装erlang
yum install erlang
2.4、安装下载的erlang
//安装rabbitmq
yum install rabbitmq-server-3.7.17-1.el7.noarch.rpm
2.5、配置RabbitMQ
//2.1、复制配置文件
cp /usr/share/doc/rabbitmq-server-3.7.17/rabbitmq.config.example
etc/rabbitmq/rabbitmq.config
//2.2、修改配置文件
vi /etc/rabbitmq/rabbitmq.config
//删除loopback的前面的%%和最后的逗号
2.5、启动(关闭)RabbitMQ
您可以通过运行以下命令启动RabbitMQ服务器进程。
systemctl start rabbitmq-server //开启服务 systemctl enable rabbitmq-server //开机启动 systemctl status rabbitmq-server //查看状态
2.6、修改防火墙规则
//开启15672端口
firewall-cmd –zone=public –permanent –add-port=15672/tcp
//重启防火墙
firewall-cmd –reload
2.7、开启Web管理界面
//开启服务eb
rabbitmq-plugins enable rabbitmq_management
//重启rabbitMQ
systemctl restart rabbitmq-server
2.8、访问管理界面
三、安装碰到的问题
3.1、登陆失败
登录遇到问题:User can only log in via localhost
//修改rabbit.app
vi /usr/lib/rabbitmq/lib/rabbitmq_server-3.7.17/ebin/rabbit.app
将:{loopback_users, [<<”guest”>>]},
改为:{loopback_users, []},
原因:rabbitmq从3.3.0开始禁止使用guest/guest权限通过除localhost外的访问
重启服务即可正常登录:
systemctl restart rabbitmq-server.service