基于Apache APISIX 与RocketMQ 构建云原生一体化架构APISIX 构建云原生接入体系 CONTENT Apache RocketMQ 简介 01 业务消息领域挑战 • 核心链路,稳定性要求高、时延敏感 • 容量峰值具有随机性,弹性要求高 • 业务场景复杂、集成要求尽可能简单 • 运维及流量调拨要求高 极简架构 高性能 金融级高可靠 打造业务消息领域首选 零依赖 可扩展 低延迟 高吞吐 强同步刷盘 ACK 机制 普通消息 顺序消息 多租环境带来了更高的网络及安全隔离要求 • 无限资源 vs 有限成本 • 冗长的请求链路,膨胀的技术栈 ……. 面向失败 松散耦合 基础设施解耦 极致弹性 多场景适应 低成本 高 SLA X 客户价值: X 多场景 云原生时代的挑战 云原生四要素 云原生时代的 RocketMQ admin 富客户端 轻量级 SD K API兼容 计算 云存储 VPC 网络 Kubernetes Store Store 存储集群 高可用架构升级: • 秒级故障转移,多场景容灾支持 • 无外部依赖,节点间松散耦合 • 自建及云上异构 IaaS 基础设施支持,降低成本 轻量级SDK: • 全面支持云原生通信标准 gRPC 协议 • 无状态 Pop 消费模式,多语言友好,易集成 从业务走向数据: • 事件流场景支撑 • 面向 SQL 的轻量级实时计算引擎 可分可合的存储计算分离:0 码力 | 22 页 | 2.26 MB | 1 年前3
王强-Apache RocketMQ事务消息streaming, OLAP systems�� RocketMQ 5.0 Cloud-native, computing storage separating architecture� 典型应⽤用场景 ⾦金金融交易易 电⼦子商务 智能制造 分布式事务 异步解耦 IoT/IIoT 决策分析 实时计算 概念模型 Broker A Producer A Topic A Broker Available Soft-state Eventual Consistency 分布式事务解决⽅方案 XA 特点: 1. 两阶段提交 2. 仅商业化数据库⽀支持 3. ⽆无法满⾜足⾼高并发场景 分布式事务解决⽅方案 SAGA 特点: 1. 提交+补偿 2. 并发隔离性很难保证 分布式事务解决⽅方案 TCC 特点: 1. 特殊的两阶段提交 2. Try阶段检查/锁定资源 没有真正提交 service Account service Send message Receive message 先执⾏行行本地事务还是先发送消息? 交易易型分布式事务的 RocketMQ使⽤用场景 分布式事务解决⽅方案 半消息 远程事务 特点: 1. 稳定,⽀支持⾼高并发 2. 回查机制可靠易易⽤用 3. 不不引⼊入额外的依赖 注意:回查⽅方法需要幂等 Broker 实现细节0 码力 | 34 页 | 6.17 MB | 1 年前3
RocketMQ v3.2.4 开发指南PAGECACHE 刷入磁盘。 (4). Consumer 拉消息(正常消费),消息直接从 PAGECACHE(数据在物理内存)转入 socket,到达 consumer, 丌经过 java 堆。返种消费场景最多,线上 96G 物理内存,挄照 1K 消息算,可以在物理内存缓存 1 亿条消 息。 (5). Consumer 拉消息(异常消费),消息直接从 PAGECACHE(数据在虚拟内存)转入 socket。 访问堆积在磁盘的数据时,会吐 Consumer 下达一个重定吐挃 令,令 Consumer 从 Slave 拉叏数据,返样正常的収消息不正常消费的 Consumer 都丌会因为消息堆积叐影响,因为 系统将堆积场景不非堆积场景分割在了两个丌同的节点处理。返里会产生另一个问题,Slave 会丌会写性能下降, 答案是否定的。因为 Slave 的消息写入只追求吞吏量,丌追求实时性,只要整体的吞吏量高就可以,而 Slave 一个 RPC 调用,通常是返样一个过程 1. 客户端収送请求到服务器 2. 服务器处理该请求 3. 服务器吐客户端迒回应答 所以一个 RPC 的耗时时间是上述三个步骤的总和,而某些场景要求耗时非常短,但是对可靠性要求幵丌高,例如 日志收集类应用,此类应用可以采用 oneway 形式调用,oneway 形式只収送请求丌等待应答,而収送请求在客 户端实现局面仁仁是一个 os 系统调用的开销,即将数据写入客户端的0 码力 | 52 页 | 1.61 MB | 1 年前3
Apache RocketMQ 从入门到实战提供了并发消费、顺序消费两种消费模型。 并发消费:对一个队列中消息,每一个消费者内部都会创建一个线程池,对队列中的消 息多线程处理,即偏移量大的消息比偏移量小的消息有可能先消费。 顺序消费:在某一项场景,例如 MySQL binlog 场景,需要消息按顺序进行消费。在 RocketMQ 中提供了基于队列的顺序消费模型,即尽管一个消费组中的消费者会创建一个 多线程,但针对同一个 Queue,会加锁。 温馨提示:并发消费模型中,消息消费失败默认会重试 umerOffset.json。 本文来自『中间件兴趣圈』公众号,仅作技术交流,未授权任何商业行为。 1.4 RocketMQ HA 核心工作机制 < 46 经过上面的分析,我们来讨论一下这个场景: 消息消费者首先从主服务器拉取消息,并向其提交消息消费进度,如果当主服务器宕机 后,从服务器会接管消息拉取服务,此时消息消费进度存储在从服务器,主从服务器的消息 消费进度会出现不一致?那当主 代码@2:如果返回的偏移量大于等于 0,则直接使用该 offset,这个也能理解,大于 等于 0,表示查询到有效的消息消费进度,从该有效进度开始消费,但我们要特别留意 lastOffset 为 0 是什么场景,因为返回 0,并不会执行 CONSUME_FROM_LAST_OF FSET(语义)。 代码@3:如果 lastOffset 为-1,表示当前并未存储其有效偏移量,可以理解为第一次 消费,如果是消费组重试主题,从重试队列偏移量为0 码力 | 165 页 | 12.53 MB | 1 年前3
Apache RocketMQ 介绍多种负载均衡模式发送到Broker集群,发送 延时,支持快速失败。 Consumer也由用户部署,支持PUSH和PULL两种消费模式,支持集群消费和广播消息,提供实时的 息订阅机制,满足大多数消费场景。 特点 ● RocketMQ支持异步实时刷盘,同步刷盘,同步复制,异步复制。具有高可靠性。不会因为操作系 的崩溃而导致数据丢失。 ● RocketMQ经过一系列的实践和优化,处理速度从最初的100 码力 | 5 页 | 375.48 KB | 1 年前3
共 5 条
- 1













