• 消息中间件介绍



    一、消息中间件定义:

      采用消息传送机制/消息队列的技术,实现数据之间的交流。主要应用分布式跨系统之间的集成,比如电商场景:用户下单减库存,调用物流系统,尤其对于模块微服务化,业务的拆分和系统的扩充,涉及到系统之间交互,一般用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

                

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

  • 相关阅读:
    如何检测浏览器url变化
    nodejs学习笔记 —— 异步编程解决方案
    进程和线程总结
    angular 表达式与指令
    angular 依赖注入
    grunt 插件开发注意事项
    vmstat & mpstat & w
    css 常用布局属性解释
    前端面试题
    移动端尺寸
  • 原文地址:https://www.cnblogs.com/light-sunset/p/12670660.html
Copyright © 2020-2023  润新知