• RocketMQ研究


    一 关于MQ

    1.1 什么是MQ

    MQ全称为Message Queue,即消息队列

    1.2 MQ应用场景

    1. 任务的异步处理
    2. 应用程序的节解耦合
    3. 日志收集

    1.3 关于RocketMQ

    RocketMQ是阿里开源的一款非常优秀中间件产品,脱胎于阿里的另一款队列技术MetaQ
    
    • 1

    二 市面上常用的MQ

    ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ(rocketMQ)等

    2.1 各个消息中间件的时机应用场景

    2.1.1 RocketMQ的优缺点

    2.1.1.1 优点

    1. 高可用、高吞吐量,海量消息堆积、低延迟性能高
    2. api与架构设计更加贴切业务场景
    3. 支持顺序、事务消息
    4. 支持消息过滤
    5. 支持重复消费
    6. 支持延迟消息
    7. 支持消息跟踪
    8. 支持集群、负载均衡
    9. 支持制定次数和时间间隔的失败消息重发
      10.单机部署

    2.1.1.2 缺点

    1. 生态圈相较差
    2. 消息吞吐量与消息堆积能力不如kafka
    3. 不支持主从自动切换
    4. 只支持java

    2.1.2 RabbitMQ的优缺点

    2.1.2.1 优点

    1. 支持AMQP协议
    2. 基于erlang语言开发,高并发性能较好
    3. 工作模式较为灵活
    4. 支持延迟消息
    5. 提供较为友好的后台管理页面
    6. 支持单机部署

    2.1.2.2 缺点

    1. 不支持水平扩容
    2. 不支持事物
    3. 消息吞吐量差
    4. 当产生消息堆积,性能下降明显
    5. 消息重发机制需要收集设计
    6. 不支持消息重复消费

    三 RocketMQ基础

    3.1 组成结构

    RocketMQ由生产者、消息队列、以及消费者单部分组成,他们之间的交互流程为显示消息队列brokder定时发送自身状态到NameServer,然后消息生产者请求NameServer获取消息队列brokder的地址,然后消息生产者将消息发送到brokder中的消息队列,而消费者Consumer订阅了brokder中的消息队列,通过拉去消息,获的生产者生产的消息;
    
    • 1

    3.2 RocketMQ 支持 3 种消息发送方式

    1. 同步消息
      消息生产者项broker发送消息,执行的api时同步等待,知道broker服务器返回发送的结果
    2. 异步消息
      消息生产者项broker发送消息时制定消息发送成功以及发送异常的回调方法,调用api后立即返回,生产者发送消息线程不堵塞,消息发送成功与否的回调任务在一个新的线程中执行
    3. 单向消息
      生产者想broker发送消息,执行api时直接返回,不等待返回结果

    3.3 RocketMQ 消息结构

    RocketMQ的消息包括基础属性和扩展属性两部分:
    基础属性:topic + 消息体(即消息的内容 ) + 消息flag
    扩展属性: tag(用于消费消息时进行过滤)+keys (Message 索引键)
    注意
    Message 的基础属性主要包括消息所属主题 topic , 消息 Flag(RocketMQ 不做处理)、 扩展属性、消息体 。

    3.4 RocketMQ 消费组有两种消费模式

    1)集群模式
    一个消费组内的消费者组成一个集群,主题下的一条消息只能被一个消费者消费。
    2)广播模式
    主题下的一条消息能被消费组下的所有消费者消费。
    消费者和broker之间通过推模式和拉模式接收消息,推模式即broker推送给消费者,拉模式是消费者主动从broker 查询消息。

    3.5 延迟消息

    RocketMQ的延迟消息实现非常简单,只需要发送消息前设置延迟的时间,延迟时间存在十八个等级,调用setDelayTimeLevel()设置 与时间相对应的延迟级别即可。

  • 相关阅读:
    【python】求先序排列
    edu cf #137 Div.2(A~D)
    关于JavaScript变量介绍
    Feign远程调用
    Latice CPLD jed转VME文件简介
    Java Web——JS中的BOM
    LLM大模型工程师面试经验宝典--基础版(2024.7月最新)
    使用Excel 表示汽车、摩托车10年免检时间、非常清晰。
    33、CSS进阶——布局
    Transformer上进行递归
  • 原文地址:https://blog.csdn.net/ljbnb/article/details/126360538