MQ概述
MQ成为Message Queue消息队列,是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信。分布式系统一般有两种方式进行通信 1.直接通过远程调用进行通信 2.引入第三方完成间接通信
AMQP协议
即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件同产品,不同的开发语言等条件的限制。
从整体来看,AMQP协议可划分为两层:
功能层,位于协议上层主要定义了一组命令(基于功能的逻辑分类),用于应用程序调用实现自身所需的业务逻辑。例如:应用程序可以通过功能层定义队列名称,生产消息到指定队列,消费指定队列消息等。
传输层,基于二进制数据流传输,用于将应用程序调用的指令传回服务器,并返回结果,同时可以处理信道复用,帧处理,内容编码,心跳传输,数据传输和异常处理。
MQ的优势和劣势
优势:应用解耦、异步提速、削峰填谷
劣势:系统可用性降低、系统复杂性提高、一致性问题
RabbitMq简述
是实现了高级消息队列协议(AMQP)的开源消息中间件。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。
rabbitmq提供了6种的工作模式:简单模式、work queue、发布与订阅模式、路由模式、主题模式、RPC远程调用模式
RabbitMq下载与安装
官网:https://rabbitmq.com/download.html
选择你要安装的版本即可
当然你也可以使用docker进行容器启动,会省事很多
安装好了之后访问http://localhost:15672/#/即可看到rabbitmq的可视化界面