消息中间件介绍


一、消息中间件定义:

  采用消息传送机制/消息队列的技术,实现数据之间的交流。主要应用分布式跨系统之间的集成,比如电商场景:用户下单减库存,调用物流系统,尤其对于模块微服务化,业务的拆分和系统的扩充,涉及到系统之间交互,一般用Restful和RPC实现服务之间的调用,但如果高并发场景下,为实现高吞吐量和系统之间松耦合,消息中间件就时候担起了重要角色。


二、消息中间件应用场景:

  • 异步处理:用户注册(t1ms),还需发邮件(t2ms)和短信(t3ms),如果是串行,那么共耗时t1+t2+t3;如果是并行,发邮件+短信同时进行,耗时< t1+t2+t3;如果采用消息中间件,发邮件+短信时间大大缩短,耗时<<< t1+t2+t3。
  • 应用解耦:如上面所述电商订单系统-->库存系统【强耦合】,采用消息中间件后,订单系统-->消息中间件-->库存系统【松耦合】。
  • 流量削峰:用户请求-->服务应用,用户请求-->消息中间件-->服务应用,可以实现降级处理,从而给服务减少请求交互压力。
  • 日志处理:kafka设计的初衷专注于日志处理,因此对于日志的收集或流式处理,有很强的性能。
  • 消息之间通信:智能家居场景下,手机app端、云端服务、家居设备,请求模式:手机app通过restful请求到云端,云端通过消息中间件下发控制指令到家居设备,同样,家居设备语音指令通过restful请求到云端服务,云端通过消息中间件同步消息到手机app端展示。

 


三、消息中间件发展史:

  TIB---->IBM MQ---->WebSphereMQ---->MSMQ ---->JMS---->AMQP


 四、消息中间件比较

  常用的主流消息中间件ActiveMQ、RabbitMQ、RocketMQ、Kafka

            

如果想了解更多详细比较信息,个人推荐 几种常见的消息中间件对比

原文地址:https://www.cnblogs.com/light-sunset/p/12670660.html