 RocketMQ v3.2.4 开发指南...................................................................................... 13 6.2 文件系统 .................................................................................................. 的多个关键特性的实现原理,幵对消息中间件遇到的各种问题迕行总结,阐述 RocketMQ 如何解决返些问题。文中主要引用了 JMS 规范不 CORBA Notification 规范,规范为我们设计系统挃明了 方吐,但是仍有丌少问题规范没有提及,对亍消息中间件又至关重要。RocketMQ 幵丌遵循任何规范,但是参考了 各种规范不同类产品的设计思想。 2 产品发展历史 大约经历了三个主要版本迭代 RocketMQ + B2B 个性化需求 为 B2B 应用提供消息服务 3 与业术语  Producer 消息生产者,负责产生消息,一般由业务系统负责产生消息。  Consumer 消息消费者,负责消费消息,一般是后台系统负责异步消费。  Push Consumer Consumer 的一种,应用通常吐 Consumer 对象注册一个 Listener 接口,一旦收到消息,Consumer0 码力 | 52 页 | 1.61 MB | 1 年前3 RocketMQ v3.2.4 开发指南...................................................................................... 13 6.2 文件系统 .................................................................................................. 的多个关键特性的实现原理,幵对消息中间件遇到的各种问题迕行总结,阐述 RocketMQ 如何解决返些问题。文中主要引用了 JMS 规范不 CORBA Notification 规范,规范为我们设计系统挃明了 方吐,但是仍有丌少问题规范没有提及,对亍消息中间件又至关重要。RocketMQ 幵丌遵循任何规范,但是参考了 各种规范不同类产品的设计思想。 2 产品发展历史 大约经历了三个主要版本迭代 RocketMQ + B2B 个性化需求 为 B2B 应用提供消息服务 3 与业术语  Producer 消息生产者,负责产生消息,一般由业务系统负责产生消息。  Consumer 消息消费者,负责消费消息,一般是后台系统负责异步消费。  Push Consumer Consumer 的一种,应用通常吐 Consumer 对象注册一个 Listener 接口,一旦收到消息,Consumer0 码力 | 52 页 | 1.61 MB | 1 年前3
 Apache RocketMQ 从入门到实战RocketMQ PMC Member/ committer,Linux OpenMessaging TSC Member,目前负责 RocketMQ 专有云商业化以 及开源技术生态构建。具有多年分布式系统、中间件 研究及工程经验。目前对分布式中间件、K8s、微服 务、物联网、Serverless 感兴趣。 推荐序 Apache RocketMQ 作为一款高吞吐,抗万亿消息堆积的云原生消息平台,目前已 版本后引入了多副本机制,即一个复制组(m-s)可以演变为基 于 raft 协议的复制组,复制组内部使用 raft 协议保证 broker 节点数据的强一致性,该部署 架构在金融行业用的比较多。 二、消息订阅模型 在 RocketMQ 的消息消费模式采用的是发布与订阅模式。 topic:一类消息的集合,消息发送者将一类消息发送到一个主题中,例如订单模块将 订单发送到 order_topic 中,而用户登录时,将登录事件发送到 topic。一个 topic 可以被多个消费组订阅,同样一个消费组也可以订阅多 个主题。一个消费组拥有多个消费者。 术语解释起来有点枯燥晦涩,接下来我举例来阐述。 例如我们在开发一个订单系统,其中有一个子系统:order-service-app,在该项目 中会创建一个消费组 order_consumer 来订阅 order_topic,并且基于分布式部署, order-service-app0 码力 | 165 页 | 12.53 MB | 1 年前3 Apache RocketMQ 从入门到实战RocketMQ PMC Member/ committer,Linux OpenMessaging TSC Member,目前负责 RocketMQ 专有云商业化以 及开源技术生态构建。具有多年分布式系统、中间件 研究及工程经验。目前对分布式中间件、K8s、微服 务、物联网、Serverless 感兴趣。 推荐序 Apache RocketMQ 作为一款高吞吐,抗万亿消息堆积的云原生消息平台,目前已 版本后引入了多副本机制,即一个复制组(m-s)可以演变为基 于 raft 协议的复制组,复制组内部使用 raft 协议保证 broker 节点数据的强一致性,该部署 架构在金融行业用的比较多。 二、消息订阅模型 在 RocketMQ 的消息消费模式采用的是发布与订阅模式。 topic:一类消息的集合,消息发送者将一类消息发送到一个主题中,例如订单模块将 订单发送到 order_topic 中,而用户登录时,将登录事件发送到 topic。一个 topic 可以被多个消费组订阅,同样一个消费组也可以订阅多 个主题。一个消费组拥有多个消费者。 术语解释起来有点枯燥晦涩,接下来我举例来阐述。 例如我们在开发一个订单系统,其中有一个子系统:order-service-app,在该项目 中会创建一个消费组 order_consumer 来订阅 order_topic,并且基于分布式部署, order-service-app0 码力 | 165 页 | 12.53 MB | 1 年前3
 消息中间件RocketMQ原理解析 - 斩秋加一来实现对所有 queue 的轮询 如果入参 lastBrokerName 不为空,代表上次选择的 queue 发送失败,这次选 择应该避开同一个 queue 3) Producer 发消息系统重试: 发送失败后,重试几次 retryTimesWhenSendFailed = 2 发送消息超时 sendMsgTimeout = 3000 Producer 通过 selectOneMessageQueue 比如购买流程(1)下单(2)支付(3)支付成功,这三个消息需要根据 特定规则将这个三个消息按顺序发送到一个 queue 如何实现把顺序消息发送到同一个 queue: 一般消息是通过轮询所有队列发送的,顺序消息可以根据业务比如说订单号 orderId 相同的消息发送到同一个队列, 或者同一用户 userId 发送到同一队列等等 messageQueueList [orderId%messageQueueList LocalTransactionExecuter , 处 理 本 地 事 物 逻 辑 返 回 处 理 的 事 物 状 态 LocalTransactionState 3) 二阶段,处理完本地事物中业务得到事物状态, 根据 offset 查找到 commitLog 中 的 prepared 消息,设置消息状态 commitType 或者 rollbackType , 让后将信息添加到 commitLog0 码力 | 57 页 | 2.39 MB | 1 年前3 消息中间件RocketMQ原理解析 - 斩秋加一来实现对所有 queue 的轮询 如果入参 lastBrokerName 不为空,代表上次选择的 queue 发送失败,这次选 择应该避开同一个 queue 3) Producer 发消息系统重试: 发送失败后,重试几次 retryTimesWhenSendFailed = 2 发送消息超时 sendMsgTimeout = 3000 Producer 通过 selectOneMessageQueue 比如购买流程(1)下单(2)支付(3)支付成功,这三个消息需要根据 特定规则将这个三个消息按顺序发送到一个 queue 如何实现把顺序消息发送到同一个 queue: 一般消息是通过轮询所有队列发送的,顺序消息可以根据业务比如说订单号 orderId 相同的消息发送到同一个队列, 或者同一用户 userId 发送到同一队列等等 messageQueueList [orderId%messageQueueList LocalTransactionExecuter , 处 理 本 地 事 物 逻 辑 返 回 处 理 的 事 物 状 态 LocalTransactionState 3) 二阶段,处理完本地事物中业务得到事物状态, 根据 offset 查找到 commitLog 中 的 prepared 消息,设置消息状态 commitType 或者 rollbackType , 让后将信息添加到 commitLog0 码力 | 57 页 | 2.39 MB | 1 年前3
 Apache RocketMQ 介绍和灵活的可伸缩性。它的一个重要特性是支持非日志类型的可靠消息传送,非常适合运用在金融和电 商务领域。目前他是Apache社区的顶级项目,在全球有超过100家公司在其业务中使用RocketMQ 开源版本。 诞生 RocketMQ起源于阿里巴巴。阿里巴巴最初由于业务需求,需要使用消息中间件。早期使用过Notify ActiveMQ等。但在需求不断膨胀的情况下,ActiveMQ IO模块遇到了瓶颈,几经努力但改善成果不 度等特性非常赞赏。但不幸的是,Kafka不能满足他们的要求,特别是在低延迟和高可靠性方面。在 种情况下,阿里巴巴决定发明一个新的消息传递引擎来处理更广泛的用例集,从传统的发布/订阅方 到大批量实时零损失容忍交易系统。 里程碑 2012年,阿里巴巴开始开发RocketMQ,经历了数次双11核心交易链路检验。 2016年11月11日,RocketMQ又一次在阿里巴巴全球购物节上处理了1.2万亿个并发在线消息传输, Broker负责消息存储,以Topic为纬度支持轻量级的队列,单机可以支撑上万队列规模,支持消息推 模型,具备多副本容错机制(2副本或3副本)、强大的削峰填谷以及上亿级消息堆积能力,同时可严 保证消息的有序性。除此之外,Broker还提供了同城异地容灾能力,丰富的Metrics统计以及告警机 。这些都是传统消息系统无法比拟的。 Producer由用户进行分布式部署,消息由Producer通过多种负载均衡模式发送到Broker集群,发送0 码力 | 5 页 | 375.48 KB | 1 年前3 Apache RocketMQ 介绍和灵活的可伸缩性。它的一个重要特性是支持非日志类型的可靠消息传送,非常适合运用在金融和电 商务领域。目前他是Apache社区的顶级项目,在全球有超过100家公司在其业务中使用RocketMQ 开源版本。 诞生 RocketMQ起源于阿里巴巴。阿里巴巴最初由于业务需求,需要使用消息中间件。早期使用过Notify ActiveMQ等。但在需求不断膨胀的情况下,ActiveMQ IO模块遇到了瓶颈,几经努力但改善成果不 度等特性非常赞赏。但不幸的是,Kafka不能满足他们的要求,特别是在低延迟和高可靠性方面。在 种情况下,阿里巴巴决定发明一个新的消息传递引擎来处理更广泛的用例集,从传统的发布/订阅方 到大批量实时零损失容忍交易系统。 里程碑 2012年,阿里巴巴开始开发RocketMQ,经历了数次双11核心交易链路检验。 2016年11月11日,RocketMQ又一次在阿里巴巴全球购物节上处理了1.2万亿个并发在线消息传输, Broker负责消息存储,以Topic为纬度支持轻量级的队列,单机可以支撑上万队列规模,支持消息推 模型,具备多副本容错机制(2副本或3副本)、强大的削峰填谷以及上亿级消息堆积能力,同时可严 保证消息的有序性。除此之外,Broker还提供了同城异地容灾能力,丰富的Metrics统计以及告警机 。这些都是传统消息系统无法比拟的。 Producer由用户进行分布式部署,消息由Producer通过多种负载均衡模式发送到Broker集群,发送0 码力 | 5 页 | 375.48 KB | 1 年前3
 基于Apache APISIX 与RocketMQ 构建云原生一体化架构APISIX 构建云原生接入体系 CONTENT Apache RocketMQ 简介 01 业务消息领域挑战 • 核心链路,稳定性要求高、时延敏感 • 容量峰值具有随机性,弹性要求高 • 业务场景复杂、集成要求尽可能简单 • 运维及流量调拨要求高 极简架构 高性能 金融级高可靠 打造业务消息领域首选 零依赖 可扩展 低延迟 高吞吐 强同步刷盘 ACK 机制 普通消息 普通消息 顺序消息 延迟消息 事务消息 重试消息 死信消息 设计思想: 1.消息不丢、高可靠是架构的基础 2.时延优先,兼顾吞吐 3.收敛业务共性问题,提供丰富的业务消息类型 4.注重可运维性、弹性扩缩、流量调拨能力建设 RocketMQ 简介 2022 2007 2012 2016 2017 2018 N otify Born from multicolored stone project gRPC 协议 • 无状态 Pop 消费模式,多语言友好,易集成 从业务走向数据: • 事件流场景支撑 • 面向 SQL 的轻量级实时计算引擎 可分可合的存储计算分离: • Broker 升级为真正的无状态服务节点,无 binding • Broker和Store节点分离部署、独立扩缩 • 可分可合,适应多种业务场景,降低运维负担 云原生基础设施: • 可观测性能力云原生化,OpenTelemetry0 码力 | 22 页 | 2.26 MB | 1 年前3 基于Apache APISIX 与RocketMQ 构建云原生一体化架构APISIX 构建云原生接入体系 CONTENT Apache RocketMQ 简介 01 业务消息领域挑战 • 核心链路,稳定性要求高、时延敏感 • 容量峰值具有随机性,弹性要求高 • 业务场景复杂、集成要求尽可能简单 • 运维及流量调拨要求高 极简架构 高性能 金融级高可靠 打造业务消息领域首选 零依赖 可扩展 低延迟 高吞吐 强同步刷盘 ACK 机制 普通消息 普通消息 顺序消息 延迟消息 事务消息 重试消息 死信消息 设计思想: 1.消息不丢、高可靠是架构的基础 2.时延优先,兼顾吞吐 3.收敛业务共性问题,提供丰富的业务消息类型 4.注重可运维性、弹性扩缩、流量调拨能力建设 RocketMQ 简介 2022 2007 2012 2016 2017 2018 N otify Born from multicolored stone project gRPC 协议 • 无状态 Pop 消费模式,多语言友好,易集成 从业务走向数据: • 事件流场景支撑 • 面向 SQL 的轻量级实时计算引擎 可分可合的存储计算分离: • Broker 升级为真正的无状态服务节点,无 binding • Broker和Store节点分离部署、独立扩缩 • 可分可合,适应多种业务场景,降低运维负担 云原生基础设施: • 可观测性能力云原生化,OpenTelemetry0 码力 | 22 页 | 2.26 MB | 1 年前3
 rocketmq 服务部署来源网站:链滴 许可协议:署名-相同方式共享 4.0 国际 (CC BY-SA 4.0) 摘自:https://zhuanlan.zhihu.com/p/226173170 rocketmq源码构建 系统:Mac OS 12.0 --- arm64 jdk版本:1.8 maven版本:3.6.3 git clone https://github.com/apache/rocketmq.git tore-a/abort # commitLog每个文件的大小 默认1G mapedFileSizeCommitLog=1073741824 # ConsumeQueue每个文件默认存30w条,根据业务情况调整 mapedFileSizeConsumeQueue=300000 2、配置slave节点 conf/2m-2s-async/broker-b-s.properties # 集群名称 b tore-b/abort # commitLog每个文件的大小 默认1G mapedFileSizeCommitLog=1073741824 # ConsumeQueue每个文件默认存30w条,根据业务情况调整 mapedFileSizeConsumeQueue=300000 先把两个节点 name server 启动 nohup /Users/gitsilence/JavaTools/rocketmq/rocketmq-40 码力 | 11 页 | 284.35 KB | 1 年前3 rocketmq 服务部署来源网站:链滴 许可协议:署名-相同方式共享 4.0 国际 (CC BY-SA 4.0) 摘自:https://zhuanlan.zhihu.com/p/226173170 rocketmq源码构建 系统:Mac OS 12.0 --- arm64 jdk版本:1.8 maven版本:3.6.3 git clone https://github.com/apache/rocketmq.git tore-a/abort # commitLog每个文件的大小 默认1G mapedFileSizeCommitLog=1073741824 # ConsumeQueue每个文件默认存30w条,根据业务情况调整 mapedFileSizeConsumeQueue=300000 2、配置slave节点 conf/2m-2s-async/broker-b-s.properties # 集群名称 b tore-b/abort # commitLog每个文件的大小 默认1G mapedFileSizeCommitLog=1073741824 # ConsumeQueue每个文件默认存30w条,根据业务情况调整 mapedFileSizeConsumeQueue=300000 先把两个节点 name server 启动 nohup /Users/gitsilence/JavaTools/rocketmq/rocketmq-40 码力 | 11 页 | 284.35 KB | 1 年前3
 王强-Apache RocketMQ事务消息Apache RocketMQ 事务消息 王强 (辽天) 阿⾥里里巴巴 中间件技术专家 • 事务消息的演进与Apache RocketMQ的实现 • Cloud Native时代下消息系统的挑战 • Apache RocketMQ 简介 • Apache RocketMQ 存储设计 Apache RocketMQ http://rocketmq.apache.org • ⾼高性能,分布式 storage separating architecture� 典型应⽤用场景 ⾦金金融交易易 电⼦子商务 智能制造 分布式事务 异步解耦 IoT/IIoT 决策分析 实时计算 概念模型 Broker A Producer A Topic A Broker B Topic B ConsumerGroupA ConsumerGroupB Consumer 1 Consumer Producer B Consumer 1 Consumer 2 MessageQueue1 MessageQueue2 MessageQueue1 MessageQueue2 部署模型 组件细节 Broker Netty RemotingServer Netty Remoting Client NameServer All Info In Memory except KV0 码力 | 34 页 | 6.17 MB | 1 年前3 王强-Apache RocketMQ事务消息Apache RocketMQ 事务消息 王强 (辽天) 阿⾥里里巴巴 中间件技术专家 • 事务消息的演进与Apache RocketMQ的实现 • Cloud Native时代下消息系统的挑战 • Apache RocketMQ 简介 • Apache RocketMQ 存储设计 Apache RocketMQ http://rocketmq.apache.org • ⾼高性能,分布式 storage separating architecture� 典型应⽤用场景 ⾦金金融交易易 电⼦子商务 智能制造 分布式事务 异步解耦 IoT/IIoT 决策分析 实时计算 概念模型 Broker A Producer A Topic A Broker B Topic B ConsumerGroupA ConsumerGroupB Consumer 1 Consumer Producer B Consumer 1 Consumer 2 MessageQueue1 MessageQueue2 MessageQueue1 MessageQueue2 部署模型 组件细节 Broker Netty RemotingServer Netty Remoting Client NameServer All Info In Memory except KV0 码力 | 34 页 | 6.17 MB | 1 年前3
 万亿级数据洪峰下的消息引擎Apache RocketMQ万亿洪峰下有哪些问题 机器假死 IO Util,Load飙高 磁盘响应慢 消息大量堆积 网卡故障,甚至流量跑满 磁盘损坏 零点之战:发布消息SLA要求100% 慢请求开始大量增加 分布式系统雪崩 容量不足,单机热点 问题的本质: 可用性无限接近100% 可靠性无限接近100% 可用性 > 可靠性 1.4万亿 双十一当天高可用要求 ~~ 100% ???????????? = 02 低延迟分布式存储系统 在线熔断机制,秒级隔离 03 容量保障,限流 1.4万亿 低延迟分布式存储系统 – RocketMQ存储 Java Heap Lock Page Cache Disk Request Request Request Request Request Request 万级请求/秒/单机 1.4万亿 低延迟分布式存储系统 – 并发锁的开销 lR nized ØFair ØUnfair lLockSupport.unpark/park 1.4万亿 低延迟分布式存储系统 – PageCache真的那么快吗? 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺现象分析 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺现象分析 lMemory access latency issues: ØDirect reclaim0 码力 | 35 页 | 993.29 KB | 1 年前3 万亿级数据洪峰下的消息引擎Apache RocketMQ万亿洪峰下有哪些问题 机器假死 IO Util,Load飙高 磁盘响应慢 消息大量堆积 网卡故障,甚至流量跑满 磁盘损坏 零点之战:发布消息SLA要求100% 慢请求开始大量增加 分布式系统雪崩 容量不足,单机热点 问题的本质: 可用性无限接近100% 可靠性无限接近100% 可用性 > 可靠性 1.4万亿 双十一当天高可用要求 ~~ 100% ???????????? = 02 低延迟分布式存储系统 在线熔断机制,秒级隔离 03 容量保障,限流 1.4万亿 低延迟分布式存储系统 – RocketMQ存储 Java Heap Lock Page Cache Disk Request Request Request Request Request Request 万级请求/秒/单机 1.4万亿 低延迟分布式存储系统 – 并发锁的开销 lR nized ØFair ØUnfair lLockSupport.unpark/park 1.4万亿 低延迟分布式存储系统 – PageCache真的那么快吗? 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺现象分析 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺现象分析 lMemory access latency issues: ØDirect reclaim0 码力 | 35 页 | 993.29 KB | 1 年前3
 万亿级数据洪峰下的消息引擎 Apache RocketMQ万亿洪峰下有哪些问题 机器假死 IO Util,Load飙高 磁盘响应慢 消息大量堆积 网卡故障,甚至流量跑满 磁盘损坏 零点之战:发布消息SLA要求100% 慢请求开始大量增加 分布式系统雪崩 容量不足,单机热点 问题的本质: 可用性无限接近100% 可靠性无限接近100% 可用性 > 可靠性 1.4万亿 双十一当天高可用要求 ~~ 100% ???????????? = 02 低延迟分布式存储系统 在线熔断机制,秒级隔离 03 容量保障,限流 1.4万亿 低延迟分布式存储系统 – RocketMQ存储 Java Heap Lock Page Cache Disk Request Request Request Request Request Request 万级请求/秒/单机 1.4万亿 低延迟分布式存储系统 – 并发锁的开销 lR nized ØFair ØUnfair lLockSupport.unpark/park 1.4万亿 低延迟分布式存储系统 – PageCache真的那么快吗? 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺现象分析 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺现象分析 lMemory access latency issues: ØDirect reclaim0 码力 | 35 页 | 5.82 MB | 1 年前3 万亿级数据洪峰下的消息引擎 Apache RocketMQ万亿洪峰下有哪些问题 机器假死 IO Util,Load飙高 磁盘响应慢 消息大量堆积 网卡故障,甚至流量跑满 磁盘损坏 零点之战:发布消息SLA要求100% 慢请求开始大量增加 分布式系统雪崩 容量不足,单机热点 问题的本质: 可用性无限接近100% 可靠性无限接近100% 可用性 > 可靠性 1.4万亿 双十一当天高可用要求 ~~ 100% ???????????? = 02 低延迟分布式存储系统 在线熔断机制,秒级隔离 03 容量保障,限流 1.4万亿 低延迟分布式存储系统 – RocketMQ存储 Java Heap Lock Page Cache Disk Request Request Request Request Request Request 万级请求/秒/单机 1.4万亿 低延迟分布式存储系统 – 并发锁的开销 lR nized ØFair ØUnfair lLockSupport.unpark/park 1.4万亿 低延迟分布式存储系统 – PageCache真的那么快吗? 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺现象分析 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺现象分析 lMemory access latency issues: ØDirect reclaim0 码力 | 35 页 | 5.82 MB | 1 年前3
共 9 条
- 1













