消息中间件

Posted orange-time

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了消息中间件相关的知识,希望对你有一定的参考价值。

1:什么叫消息中间件(MQ)

  没有具体的定义。消息中间件属于分布式系统中的一个工具,类似于redis、mongoDB等第三方的产品。关注 消息的发送和接受,利用高效可靠异步消息传递机制,对分布式系统中的各个子系统进行集成。

 

2:为什么使用消息中间价

  解耦:之前的项目生成一个war包,把war包拆分成不同的系统。利用消息中间件进行解耦。(这种是松耦合)

  异步处理:我们只需要把消息放入到mq当中,不用去管后面的操作,这样就可以实现异步的机制。

  缓冲:当高并发数据量很多的时候,mq可能处理不了,这时候就可以先把数据保存起来。然后一点点处理掉。

  伸缩性:当高并发的时候,我们的接受方或者消费方处理起来比较慢,可以添加集群来保证我们系统正常运行。当没有高并发的时候,也可以删除集群中的应用。

  扩展性:当添加一个子系统的时候,只需要订阅这个mq就无缝的连接,当不需要这个子系统的时候,直接删除就行。

3:应用场景

 解耦:订单接口调用物流接口,这时候两个接口是耦合在一起的,可以将这两个接口进行拆分,通过消息中间件进行关联。

 异步:用户注册,当用户注册成功以后,会给用户发注册成功的短信、邮件。注册接口只关注注册,发短信业务是次要的。这样子也可以缩短接口的相应时间。

 缓冲:对日志的操作,都是数据量很大的,这时候可以保存到mq中,进行缓冲。

 消息通讯也可以使用mq进行操作。

 流量削峰:例如秒杀或者团购,在某一时间流量很高,平常很稳定。把数据放入到mq中,然后缓慢的处理,在保存结果。

4:常用mq的比较

 技术图片

 

 

mq和RPC的区别

  同步性:RPC是同步的,mq是异步的。

  依赖性:RPC是强依赖的,mq是没有依赖的(只是松耦合)

  

以上是关于消息中间件的主要内容,如果未能解决你的问题,请参考以下文章

消息中间件

消息中间件专题-消息中间件引言

消息中间件之Kafka

厉害!一文了解消息中间件-RabbitMQ

消息中间件剖析

消息中间件