Alibaba Spring Cloud 十九 RocketMQ消息队列

概述
Apache RocketMQ 是一款开源的分布式消息中间件,最初由阿里巴巴开发并贡献给 Apache 基金会。它在高吞吐、低延迟、海量堆积、高可用等方面有着良好的表现,广泛应用于电商、金融、互联网等对实时数据处理和分布式系统可靠通信有较高要求的场景。


1. 核心特性

  1. 高吞吐、低延迟

    • RocketMQ 通过高效的存储机制和异步刷盘策略,能够提供百万级的吞吐能力(QPS),同时在正常情况下保持极低的延迟(ms 级别)。
  2. 水平扩展性

    • 通过增加 Broker 实例(存储节点)来水平扩展存储和负载能力,能够轻松支撑海量数据的写入和消费。
  3. 可靠性和高可用

    • 提供主从同步/异步复制机制,保证消息在 Broker 节点发生故障时的容错能力。
    • 可根据业务需求选择不同的复制策略,以平衡性能与数据安全。
  4. 多种消息模式

    • 普通消息 (Normal Message):最常见的发布/订阅场景。
    • 顺序消息 (Ordered Message):保证消息在同一个分区(queue)内的顺序性。
    • 延时消息 (Scheduled/Delayed Message):支持设定延时时间后再进行投递。
    • 事务消息 (Transaction Message):与分布式事务结合,在分布式场景下保证消息与业务操作的最终一致性。
  5. 丰富的特性支持

    • 标签 (Tags)过滤 (Filter):在同一个 Topic 下通过标签分组,消费者可以按需订阅指定标签消息,减少消息接收和处理成本。
    • 死信队列 (DLQ):对多次消费失败的消息进行隔离存储,防止影响正常消费。
    • 重试机制:提供自动重试,对消费失败的消息可重新投递。
  6. 监控与运维

    • 提供 RocketMQ Console 控制台,查看 Topic、Consumer Group、Broker 状态、消息堆积、消费延迟等。
    • 支持与 Prometheus 等监控系统结合,构建完善的监控与报警。

2. 核心组件与架构

  1. NameServer

    • 类似“服务发现中心”,存储 Broker 信息并对外提供路由查询。
    • Producer 和 Consumer 都需要从 NameServer 获取 Topic 对应的路由信息,以决定消息发往和拉取的 Broker。
  2. Broker

    • 负责消息的存储、投递、转发等功能,是 RocketMQ 核心的存储与转发节点。
    • 一个 Broker 可以对应多个物理文件存储目录,也可以部署在多台服务器上形成集群。
  3. Producer

    • 消息发送方,负责将消息投递到 RocketMQ Broker。
    • Producer 可以设置重试策略、同步或异步发送模式,以及按需选择顺序消息发送等。
  4. Consumer

    • 消费消息的一方,支持 PushPull 两种模式(在官方 Client 中实际是拉模式,但可以对外封装为推模式)。
    • 提供集群消费与广播消费两种消费模式,集群消费下同一个消费组内的多个消费者会分摊消费任务;广播消费则是每个 Consumer 都会接收并处理消息。

整体流程:

  1. Producer 从 NameServer 查询
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十方来财

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值