消息队列MQ简介
项目中要用到RabbitMQ,领导让我先了解一下。在之前的公司中,用到过消息队列MQ,阿里的那款RocketMQ,当时公司也做了简单的技术分享,自己也看了一些博客。自己在有道云笔记上,做了一些整理,但后来也就搁在那了。现在有时间,就对MQ的一些简单的概念做下整理吧。 RabbitMQ的一些介绍,请参考 https://www.jianshu.com/p/e55e971aebd8 ,里面对一些概念和使用的讲解还是非常详细的。 什么是消息队列-定义 我们来看下维基百科上面的定义: 是一种进程间通信或同一进程的不同线程间的通信方式,软件的软件的贮列用来处理一系列的输入,通常是来自用户。 消息队列提供了异步的通信协议,每一个贮列中的纪录包含详细说明的数据,包含发生的时间,输入设备的种类,以及特定的输入参数。 也就是说:消息的发送者和接收者不需要同时与消息队列交互。消息会保存在队列中,知道接收者取回它。 下面是架构图 : Producer:消息生产者,负责生产和发送消息到Broker; Broker:消息处理中心,负责消息存储、确认、重试等; Consumer:消息消费中心,负责从Broker中获取消息并处理。 消息队列-特性 异步性:将耗时的同步任务通过发送消息的方式进行异步处理,减少等待时间。 松耦合:不同系统、服务之间可以通过消息队列进行通信