• 01-MQ介绍以及产品比较


    一、消息中间件介绍
    1、什么是MQ?为什么要用MQ?
    MQ:MessageQueue,消息队列。队列是一种FIFO先进先出的数据结构,消息由生产者发送到MQ进行排队,然后按原来的顺序交由消息的消费者进行处理。

    2、MQ的优点

    • 异步:提高系统的响应速度、吞吐量
    • 接耦:服务之间进行解耦,减少服务之间的影响,提高系统整体的稳定性以及可扩展性
    • 削峰:以稳定的系统资源应对突发的流量冲击

    3、MQ的缺点

    • 系统可用性降低:系统引入的依赖变多,系统的稳定性就会变差。一旦MQ宕机,会对业务产生影响,因此要保证MQ的高可用
    • 系统复杂度提高:异步调用会导致系统链路变得更复杂,并且还会带来一些问题。比如如何保证消费不会丢失?不会被重复消费?以及消息的顺序性如何保证等问题
    • 消息一致性问题:A服务通过MQ给B、C服务发消息,B能够接收到消息,C服务接收不到或者处理失败,如何保证消息数据处理的一致性

    4、消息中间件的组成

    • Broker:消息服务器,作为server提供消息核心服务
    • Producer:消息生产者,业务的发起方,负责生产消息传输给broker
    • Consumer:消息消费者,业务的处理方,负责从broker获取消息并进行业务逻辑处理
    • Topic:发布订阅模式下的消息统一汇集地,不同生产者向topic发送消息,由MQ服务器分发到不同的订阅者,实现消息的广播
    • Queue:特定生产者向特定queue发送消息,消费者订阅特定的queue完成指定消息的接收
    • Message:消息体,根据不同通信协议定义的固定格式进行编码的数据包,来封装业务数据,实现消息的传输

    5、消息中间件模式分类

    • 点对点:消息生产者生产消息发送到queue中,然后消息消费者从queue中取出并且消费消息。类似与微信私聊
    • 发布/订阅:消息生产者(发布)将消息发布到topic中,同时有多个消息消费者(订阅)消费该消息。和点对点方式不同,发布到topic的消息会被所有订阅者消费。类似于微信公众号

    二、几大MQ产品特点比较

  • 相关阅读:
    kubeadm搭建k8s集群1.25版本完整教程【doker、网络插件calico、中间层cri-docker】
    使用NetDevOps使您的网络现代化
    Java安全之深入了解SQL注入
    MyBatis (where、set、foreach)标签
    转载——比较器的原理
    Redis 连接管理手册
    arcgis(shp)注记转CAD(dwg)文字
    STM32启动模式详解
    MySQL-有锁读
    [PAT练级笔记] 31 Basic Level 1031 查验身份证
  • 原文地址:https://blog.csdn.net/qq_39234967/article/details/126110543