王强-Apache RocketMQ事务消息Apache RocketMQ 事务消息 王强 (辽天) 阿⾥里里巴巴 中间件技术专家 • 事务消息的演进与Apache RocketMQ的实现 • Cloud Native时代下消息系统的挑战 • Apache RocketMQ 简介 • Apache RocketMQ 存储设计 Apache RocketMQ http://rocketmq.apache.org • ⾼高性能,分布式 Native时代下消息系统的挑战 • Apache RocketMQ 简介 • Apache RocketMQ 存储设计 分布式事务⾯面临的挑战 分布式事务理理论 ACID 刚性事务(强⼀一致) BASE 柔性事务(最终⼀一致) CAP Atomicity Consistency Isolation Durability Consistency Availability0 码力 | 34 页 | 6.17 MB | 1 年前3
基于Apache APISIX 与RocketMQ 构建云原生一体化架构容量峰值具有随机性,弹性要求高 • 业务场景复杂、集成要求尽可能简单 • 运维及流量调拨要求高 极简架构 高性能 金融级高可靠 打造业务消息领域首选 零依赖 可扩展 低延迟 高吞吐 强同步刷盘 ACK 机制 普通消息 顺序消息 延迟消息 事务消息 重试消息 死信消息 设计思想: 1.消息不丢、高可靠是架构的基础 2.时延优先,兼顾吞吐 3.收敛业务共性问题,提供丰富的业务消息类型 容量调整时,不能产生数据迁移,且要在秒级完成 固定分区使用场景 • 任务计算过程中,会将同一个业务类型的数据发到同一个队列 • Binlog 等数据同步过程中,需要保证严格顺序 RAFT 存储支持:自动主从切换,强一致性保证 逻辑队列:秒级无损弹性扩缩,无数据复制,流量精准调度 消息与流融合索引支持 核心问题 • 消息体小且存储结构面向单 条消息,导致提升吞吐困难 • 在进行状态存储时,无 KV 语义支撑0 码力 | 22 页 | 2.26 MB | 1 年前3
Apache RocketMQ 从入门到实战的路由注册中心,为客户端根据 Topic 提供路由服务,从 而引导客户端向 Broker 发送消息。Nameserver 之间的节点不通信。路由信息在 Nameserver 集群中数据一致性采取的最终一致性。 2. Broker 消息存储服务器,分为两种角色:Master 与 Slave,上图中呈现的就是 2 主 2 从的部 署架构,在 RocketMQ 中,主服务承担读写操作,从服务器作为一个备份,当主服务器存 json。 在 RocketMQ4.5.0 版本后引入了多副本机制,即一个复制组(m-s)可以演变为基 于 raft 协议的复制组,复制组内部使用 raft 协议保证 broker 节点数据的强一致性,该部署 架构在金融行业用的比较多。 二、消息订阅模型 在 RocketMQ 的消息消费模式采用的是发布与订阅模式。 topic:一类消息的集合,消息发送者将一类消息发送到一个主题中,例如订单模块将 业务规则导致的异常, 则重试多少次都无法消费成功,这个时候一定要告警机制,及时进行人为干预,否则消费会 积压。 三、事务消息 事务消息并不是为了解决分布式事务,而是提供消息发送与业务落库的一致性,其实现 原理就是一次分布式事务的具体运用,请看如下示例: 上述伪代码中,将订单存储关系型数据库中和将消息发送到 MQ 这是两个不同介质的 两个操作,如果能保证消息发送、数据库存储这两个操作要么同时成功,要么同时失败,0 码力 | 165 页 | 12.53 MB | 1 年前3
消息中间件RocketMQ原理解析 - 斩秋broker 有任务定时推送 1. 接收数据向 RouteInfoManager 注册。 Broker 初始化加载本地配置,配置信息是以 json 格式存储在本地, rocketmq 强依赖 fastjson 作转换, RocketMq 通过 ConfigMananger 来管理配置加载以及持久化 1. 加载 topic 配置${user.home}/store/config/topics 第五章 Remoting 通信层: Rocketmq 的通信层是基于通信框架 netty 4.0.21.Final 之上做了简单的协议封装,是强依赖。 一: NettyRemotingAbstract Server 与 Client 公用抽象类 ResponseFuture 模式: invokeSyncImpl0 码力 | 57 页 | 2.39 MB | 1 年前3
RocketMQ v3.2.4 开发指南如果服务器部署为同步双写模式,此缺陷可通过备机自劢切换为主避免,丌过仍然会存在几分钟的服务丌 可用。(依赖同步双写,主备自劢切换,自劢切换功能目前迓未实现) 目前已知的应用只有数据库 binlog 同步强依赖严格顺序消息,其他应用绝大部分都可以容忍短暂乱序,推 荐使用普通的顺序消息。 Message Queue 项目开源主页:https://github.com/alibaba/RocketMQ 服务发现(Name Server) Name Server 是与为 RocketMQ 设计的轻量级名称服务,代码小亍 1000 行,具有简单、可集群横吐扩展、无状 态等特点。将要支持的主备自劢切换功能会强依赖 Name Server。 11 客户端使用挃南 11.1 客户端如何寻址 RocketMQ 有多种配置方式可以令客户端找到 Name Server, 然后通过 Name Server0 码力 | 52 页 | 1.61 MB | 1 年前3
Apache RocketMQ 介绍RocketMQ与Kafka对比(18项差异) ● 技术选型:RocketMQ or Kafka ● Apache Kafkaに入門した 原文链接:Apache RocketMQ 介绍 ● 解决KafKa数据存储与顺序一致性保证 ● Kafka : Ordering Guarantees ● Apache Kafka 从 0.7 到 1.0:那些年我们踩过的坑 ● Apache Kafkaの概要とアーキテクチャ0 码力 | 5 页 | 375.48 KB | 1 年前3
共 6 条
- 1













