MQ
MQ 全称 Message Queue
(消息队列),是在消息的传输过程中保存消息的容器。多用于系统之间的异步通信。
为什么需要mq:
- 解耦:MQ能够使各个系统或组件之间解耦,降低它们之间的耦合度,提高系统的灵活性和可维护性
- 异步处理:通过MQ可以实现异步处理,提高系统响应速度和吞吐量。
- 削峰:在高流量时段,MQ可以缓冲突增的请求,减轻下游系统的瞬时压力。
- 可靠性:MQ通常提供持久化选项,确保消息不会因为网络问题或服务故障而丢失。
- 扩展性:MQ支持分布式部署,可以根据系统需求灵活扩展。
- 灵活性和路由:MQ支持多种消息路由方式,如直接、主题、扇形等,以适应不同的业务场景。
- 多语言支持:大多数MQ支持多种编程语言,使得开发者可以使用自己熟悉的语言进行开发。
RabbitMQ
RabbitMQ
是一个开源的,基于 AMQP(Advanced Message Queue 高级消息队列协议)
协议,可复用的企业消息系统。
支持主流的操作系统,Linux、Windows、MacOs
等
多种开发语言支持,Java、Python、Ruby、.NET、PHP、C/C++、node.js
等
安装
本文安装 RabbitMQ
的系统为 centos7
- 更新系统包:首先更新系统中的软件包。
yum -y update
- 安装
EPEL
存储库:因为Erlang
不在默认的YUM
存储库中,需要安装EPEL
存储库。
yum -y install epel-release
yum -y update
- 安装
Erlang
:RabbitMQ
是基于Erlang
开发的,因此需要先安装Erlang
。可以通过以下方式安装Erlang
:
- 从
Erlang
官网下载Erlang
存储库rpm包
并安装。 - 或者使用以下命令直接安装
Erlang和socat(RabbitMQ依赖)
:
yum -y install erlang socat
- 检查Erlang版本:确认Erlang是否安装成功并检查版本.
erl -version
显示这种版本信息的表示是老版本,需要执行:
erl
其中这个
Erlang R16B03-1
就是对应rabbitmq
需要的erlang 环境的版本
在 rabbitmq
官网查询 erlang的关联版本
https://www.rabbitmq.com/docs/which-erlang
由于我这个是老版本的erlang 所以需要划到最下面
- 下载RabbitMQ:下载RabbitMQ的rpm包。
上面我们查询到的 rabbitmq
对应的版本是 3.6.14,所以我们下载对应的版本
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/rabbitmq_v3_6_14/rabbitmq-server-3.6.14-1.el6.noarch.rpm
github 上面 rabbitmq
的历史版本查看
https://github.com/rabbitmq/rabbitmq-server/tags
6. 安装RabbitMQ:使用rpm命令安装下载的RabbitMQ包。
rpm -ivh rabbitmq-server-3.6.14-1.el6.noarch.rpm