1.RabbitMQ 介绍
1.1应用场景
MQ全称Message Queue,即消息队列,Rabbit Mq使用erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,是一种应用程序之间的通信的方法,消息队列在分布式系统开发中应用非常广泛。
其官网地址:http://www.rabbitmq.com
a、任务异步处理:
将不需要同步处理的并且耗时长的操作由消息队列通知消息接收方进行异步处理。提高应用 程序的相应时间。
b、应用程序解耦合
mq相当于一个中介,生成方通过mq于消费方进行交互,作为两者中间的一个媒介,将应用程序进行解耦合。
c、市场上还有的消息队列
ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMq,RocketMq,redis.
2、RabbitMQ工作原理
2.1、RabbitMQ工作原理
下图是RabbitMQ的基本结构:
组成部分说明如下:
Broker:消息队列服务进程,此进程包含两个部分Exchange(交换机)和Queue(队列)。
Exchange:消费队列交换机,按一定的规则将消息由路由转发到某个队列,对消息进行过滤转发。
Queue:消息队列,存储消息的队列,消息到达队列后并转发给特定的消费方。
Producer:消息生产方,即生产方客户端,生产方将消息发送给MQ。
Consumer:消息消费方,即消息方客户端,消费方从mq接收到特顶的消息后,进行消费。
消息发布流程:
----发送消息---
a、生产者和Broker 建立TCP链接。
b、生产者和Broker 建立通道。
c、生产者通过通道将消息发送给Broker,由Exchange进行转发。
d、Exchange将消息转发给指定的Queue(队列)。
----接收消息---
a、消费者和Broker建立Tcp链接。
b、消费者和Broker建立通道。
c、消费者监听指定的Queue(队列)。
d、当消息到达Queue时,Broker默认将消息推送给消费者。
e、消费者接收到消息,将消息进行消费。
2.2 RabbitMQ的安装
2.2.1、下载安装
RabbitMQ由Erlang语言开发,Erlang语言用于并发即分布式系统的开发,在电信领域应用广泛,OTP(Open Telecom Platform)作为Erlang语言的一部分,包含了很多
基于Erlang开发的中间件及工具库,安装mq需要安装Erlang/OTP,并保持版本匹配,如下图:
RabbitMQ下载地址:http://www.rabbitmq.com/download.html
1)下载Erlang,地址:
http://erlang.org/download/otp_win64_20.3.exe
erlang安装 完成需要配置erlang环境变量 : ERLANG_HOME=D:\Program Files\erl9.3 (注:此处需要配置成 erl9.3 所在的文件路径) 在 path 中添加%ERLANG_HOME%\bin;
2) 安装RabbitMQ
https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.3
下载文件后以管理员身份运行此文件
2.2.2、启动
安装成功会自动创建RabbitMq 服务并启动 (注:win7 系统 如果安装成功后服务没起起来,请重启电脑)
或者: 1)从开始菜单启动RabbitMQ
完成在开始菜单找到RabbitMQ的菜单
RabbitMQ Service-install : 安装服务
RabbitMQ Service-remove 删除服务
RabbitMQ Service-start 启动服务
RabbitMQ Service-stop 停止服务
2)如果没有开始菜单则进入安装目录下sbin目录手动启动
安装并运行服务
rabbitmq service.bat install 安装服务 rabbitmq service.bat stop 停止服务 rabbitmq service.bat start 启动服务
安装管理插件
安装 rabbitMQ 的管理插件,方便在浏览器端管理RabbitMQ
管理员身份运行 Rabbitmq-plugins.bat enable rabbitmq_management
启动成功,登录RabbitMQ
进入浏览器,输入: http://localhost:15672
初始账号和密码:guest/guest
2.2.3、注意事项
1、安装erlang和rabbitMQ以管理员身份运行。
2、当卸载重新安装时会出现RabbitMQ服务注册失败,此时需要进入注册表清理erlang
搜索RabbitMQ、ErlSrv,将对应的项全部删除。
(注:win7)
3、如果安装成功后服务没起起来,请重启电脑。