RabbitMQ是一款企业主流的消息队产品,基于Erlang语言的实现使其具有高效的消息处理能力;基于RabbitMQ的高效性以及对消息的可靠性保障,使其在企业中得到了广泛的应用。下面涛哥就来给大家讲一讲RabbitMQ详细的安装配置教程~
一、RabbitMQ介绍
RabbitMQ是一个在AMQP基础上完成的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。
AMQP,即Advanced Message Queuing Protocol, 一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。Erlang中的实现有 RabbitMQ等。
主要特性如下:
保证可靠性:使用一些机制来保证可靠性,如持久化、传输确认、发布确认
灵活的路由功能
可伸缩性:支持消息集群,多台RabbitMQ服务器可以组成一个集群
高可用性:RabbitMQ集群中的某个节点出现问题时队列任然可用
支持多种协议
支持多语言客户端
提供良好的管理界面
提供跟踪机制:如果消息出现异常,可以通过跟踪机制分析异常原因
提供插件机制:可通过插件进行多方面扩展
二、安装前环境准备
Linux:CentOS 7.6
RabbitMQ:RabbitMQ 3.7
如果你之前安装过erlang,请先删除!
yum remove erlang*
安装C++编译环境
yum -y install make gcc gcc-c++
yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC unixODBC-devel httpd python-simplejson
下载erlang和rabbitMQ
wget http://www.erlang.org/download/otp_src_20.1.tar.gz
下载RabbitMQ
三、安装erlang环境
创建/usr/local/erlang目录,我们将erlang安装在此目录。
解压erlang安装包
tar -xvf otp_src_20.1.tar.gz
进入解压文件夹
cd otp_src_20.1
erlang需要依赖JDK,因此需要先完成JDK的安装和环境变量配置。指定安装目录及安装配置
./configure --prefix=/usr/local/erlang --enable-smp-support --enable-threads --enable-sctp --enable-kernel-poll --enable-hipe --with-ssl --without-javac
编译与安装
make && make install
配置erlang环境变量:将 export PATH=$PATH:/usr/local/erlang/bin 添加到文件末尾
vi /etc/profile
重新加载profile文件
source /etc/profile
四、安装RabbitMQ
4.1 解压RabbitMQ
由于下载的安装包为xz文件,我们先将xz解压为tar。
xz -d rabbitmq-server-generic-unix-3.7.0.tar.xz
tar -xvf rabbitmq-server-generic-unix-3.7.0.tar
4.2 启动RabbitMQ
进入到解压的RabbitMQ的sbin目录
cd rabbitmq_server-3.7.0/sbin
启动RabbitMQ
./rabbitmq-server -detached
查看进程,RabbitMQ的默认端口是5672
lsof -i:5672
# 或者
ps aux|grep rabbit
#ps a 显示现行终端机下的所有程序,包括其他用户的程序。
#ps u 以用户为主的格式来显示程序状况。
#ps x 显示所有程序,不以终端机来区分。
五、启动RabbitMQ管理系统
启动RabbitMQ的管理系统插件(需进入sbin目录)
./rabbitmq-plugins enable rabbitmq_management
访问管理系统:http://119.23.237.251:15672/
六、云主机安全组设置
如果RabbitMQ服务器是基于云主机,管理系统的正常访问还需进行安全组设置。
6.1 阿里云服务器
6.2 华为云服务器
七、总结
安装配置的过程重在细节,指令和目录不要写错了哦!以上就是基于Linux安装RabbitMQ的详细过程啦,你学会了吗?“赠人玫瑰、手留余香”——学会了给涛哥点个赞呗^_^
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。