最近业务涉及到了数据的传输,因为涉及数据的持久化,因此接触到了RabbitMQ,这款消息队列工具,特此记录学习一下。
1. RabbitMQ简介
介绍RabbitMQ之前,需要先介绍一下什么是消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已。
消息队列的主要用途:不同进程Process/线程Thread之间通信。目前比较流行的消息队列有:RabbitMq、ActiveMq、ZeroMq、kafka,以及阿里开源的RocketMQ。
AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。 AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。 RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。
2. RabbitMQ安装
安装环境:Centos 7
安装流程:
1. 由于RabbitMQ依赖Erlang, 需要先安装Erlang
安装Erlang指令,利用wget插件直接下载安装
# 添加erlang solutions源
$ wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
$ sudo rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
# 启动EPEL源
$ sudo yum install epel-release
# 安装erlang
$ sudo yum install erlang
2. 完成后安装RabbitMQ
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.5.el7.noarch.rpm
3. 下载完成后安装
yum install rabbitmq-server-3.6.5-1.el7.noarch.rpm
4. 开启web管理接口
RabbitMQ自带了web管理界面,只需要启动插件便可以使用,非常方便。
$ sudo rabbitmq-plugins enable rabbitmq_management
5. 然后通过浏览器访问 http://localhost:15672
说明安装成功