一、RabbitMQ是什么

消息系统允许软件、应用相互连接和扩展.这些应用可以相互链接起来组成一个更大的应用,或者将用户设备和数据进行连接.消息系统通过将消息的发送和接收分离来实现应用程序的异步和解偶.

或许你正在考虑进行数据投递,非阻塞操作或推送通知。或许你想要实现发布/订阅,异步处理,或者工作队列。所有这些都可以通过消息系统实现。

RabbitMQ是一个消息代理 - 一个消息系统的媒介。它可以为你的应用提供一个通用的消息发送和接收平台,并且保证消息在传输过程中的安全。

二、RabbitMQ的安装过程

RabbitMQ是依赖Erlang, 所以需要先安装Erlang:

Erlang官方下载地址:https://www.erlang-solutions.com/resources/download.html

RabbitMQ官方下载地址:https://www.rabbitmq.com/download.html

这两个网站由于是国外的网站所以下载速度会比较慢,可以利用科学上网的方式下载最新的版本。我的系统是Centos7,所以如果你是rhel7或者centos7的话可以直接利用下面的链接地址自行领取。(如果链接失效了可以评论区留言,我会更新的。)

RabbitMQ链接: https://pan.baidu.com/s/1DmB1-N5hLuor0OBOD0Mtbg    提取码: vtzj 

Erlang链接: https://pan.baidu.com/s/1l-ldckGIFygnuAlbFgOyTA    提取码: pf6b

下载下来后将两个rpm文件上传至自己的服务器安装:

#安装relang
rpm -ivh --nodeps esl-erlang_21.0-1_centos_7_amd64.rpm 

#安装rabbitmq
rpm -ivh --nodeps rabbitmq-server-3.7.15-1.el7.noarch.rpm 

#开启管理界面
rabbitmq-plugins enable rabbitmq_management

#修改.erlang.cookie的权限
chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie

 问题1:修改.erlang.cookie的权限

因为之前使用的不是centos7的系统,在开启rabbitmq服务的时候会报错,说.erlang.cookie文件的权限问题,所以不管你用的是centos几,为了保险,直接修改文件的权限。(手动结束问题1)

这里继续:

#在前台开启rabbitmq服务
rabbitmq-server 

如果看到下面的界面表示你的rabbit-server已经开启成功了。(正常情况下这里的开启速度是比较快的,我的当时在这里开启的时候比较慢,后来就出现了rabbitctl无法使用,这里问题2会说到。)

这里提供几个简单的命令:

#前台启动服务
rabbitmq-server

#后台启动服务
rabbitmq-server -detached 

#停止服务
rabbitmqctl stop 

#查看状态
rabbitmqctl status 

问题2:rabbitctl命令报错

我在使用上面的命令是,发现如果使用rabbitmq-server会反应非常的慢,如果使用rabbitmqctl 操作的话就会报错:Error: unable to perform an operation on node 'rabbit@study68'.  (注:study68是我的机器名)

   

网上的解决方法很多,比如修改.erlang.cookie文件、丢失对象需要重新找回对象,再或者图中提示的几种方式,我都试过了都不可以,最后通过科学上网的方式在Google找到了一种方式,是映射解析的问题,做法是在你的hosts文件中添加本机的ip和主机名的映射。我的ip是10.10.10.68,hostname是study68.

修改完成后启动和使用rabbitmqctl就正常了。

问题3:无法访问管理后台

操作到现在就启动服务完成了,可以登录到可视化平台查看了。rabbitmq默认给了一个用户名和密码都为guest的账户,但是如果你在服务器本机操作可以直接访问 localhost:15672 。

如果你在远程访问就需要注意两个问题,第一个是防火墙的阻挡问题,解决方式有两种,要么关闭防火墙(不建议),要么开放15672和5672这两个端口。第二个就是远程访问guest是无法登录的,因为guest的权限太大了,而且是默认的账户,远程访问的话非常的不安全,所以你需要自己新建一个自己的账户。

#添加账户,用户名dong 密码123456
rabbitmqctl add_user dong 123456

#授予用户角色,总共有四种角色,这里授予的是administrator
rabbitmqctl set_user_tags dong administrator

#设置用户允许访问的vhost
rabbitmqctl set_permissions -p /  dong '.*' '.*' '.*'

创建账户完成后,利用我们自己的账户进行远程访问。地址为服务器ip地址:15672 

     

进来后就是rabbit后台的界面了,里面有各式各样的功能,比如添加用户等等。到这里rabbitmq的基本配置就完成了。