Arch Day 28: 案例分析(1):蚂蚁金服架构演进 — 从支付宝单体到金融级云原生
蚂蚁金服(现蚂蚁集团)的架构演进是中国金融科技领域最具参考价值的案例——从2004年的单体PHP应用到2024年的金融级云原生平台(SOFAStack),经历了单体→SOA→微服务→云原生四个阶段,创造了单元化架构(LDC)、OceanBase分布式数据库、异地多活等多项行业标杆级实践。
日期: 2026-04-27 (Day 28) 阶段: 第一阶段 - 架构基础 标签: #AntFinancial #SOFAStack #OceanBase #UnitizedArchitecture #FinancialGrade #DistributedTransaction
核心概念
一句话定义
蚂蚁金服(现蚂蚁集团)的架构演进是中国金融科技领域最具参考价值的案例——从2004年的单体PHP应用到2024年的金融级云原生平台(SOFAStack),经历了单体→SOA→微服务→云原生四个阶段,创造了单元化架构(LDC)、OceanBase分布式数据库、异地多活等多项行业标杆级实践。
为什么资深架构师仍需关注
| 维度 | 蚂蚁的独特价值 |
|---|---|
| 规模极限 | 双11每秒54.4万笔交易(2020年峰值),是全球最大的金融交易系统之一 |
| 金融级要求 | 资金零差错、强一致性、严格合规——不同于互联网"最终一致性就行" |
| 完整演进 | 20年完整演进历程,每个阶段的决策原因和权衡都有迹可循 |
| 开源生态 | SOFAStack、OceanBase等核心组件已开源,可直接学习源码 |
| 金融PM必备 | 面试金融科技公司时,对蚂蚁架构的理解是基本功 |
常见误区与反模式
| 误区 | 真相 |
|---|---|
| "蚂蚁的架构可以直接复制" | 蚂蚁的架构是在特定业务压力下逐步演进的,不是一开始就设计好的 |
| "单元化架构适合所有金融系统" | 单元化的前提是业务可以按维度(如用户ID)分片,不是所有业务都行 |
| "OceanBase可以替代所有数据库" | OceanBase是强一致性分布式数据库,对运维能力要求极高 |
| "去IOE = 技术先进" | 蚂蚁去IOE是业务逼的(Oracle扩展瓶颈),不是为了技术先进 |
知识点详解
知识点1:蚂蚁架构演进时间线
2004-2006: 单体时代
━━━━━━━━━━━━━━━━━━━
├── 支付宝从淘宝剥离,PHP单体应用
├── Oracle单机数据库
├── 功能:担保交易(买家付款→确认收货→卖家收款)
├── 挑战:PHP性能瓶颈,无法支撑交易增长
└── 关键决策:从PHP迁移到Java
2006-2010: Java单体 → SOA
━━━━━━━━━━━━━━━━━━━━━━━━
├── 2006: 迁移到Java(Spring + iBatis + Oracle)
├── 2008: 单体拆分为多个子系统(SOA化)
│ ├── 交易系统、支付系统、账务系统、会员系统
│ └── 通过ESB(企业服务总线)通信
├── 2008: 第一次大规模重构(交易和支付分离)
├── 挑战:Oracle单机扩展到极限
├── 关键决策:数据库垂直拆分(按业务域)
└── 架构模式:SOA + Oracle分库
2010-2013: 去IOE + 分布式化
━━━━━━━━━━━━━━━━━━━━━━━━━━
├── 2010: "去IOE"运动开始
│ ├── I(IBM小型机) → x86服务器
│ ├── O(Oracle数据库) → MySQL/OceanBase
│ └── E(EMC存储) → 分布式存储
├── 2011: OceanBase 0.1版本诞生
│ └── 目标:替代Oracle,支撑金融级事务
├── 2012: 数据库水平拆分(分库分表)
│ └── 中间件:TDDL(Taobao Distributed Data Layer)
├── 2013: 微服务雏形
│ └── RPC框架:SOFA-RPC
└── 关键决策:自研分布式数据库而非用开源MySQL集群
2013-2016: 微服务 + 单元化
━━━━━━━━━━━━━━━━━━━━━━━━━━
├── 2013: 微服务架构全面落地
│ ├── 服务数量:数百→数千
│ ├── 服务治理:SOFA微服务框架
│ └── 配置中心、注册中心、链路追踪
├── 2014: **单元化架构(LDC)** 首次部署
│ └── 解决问题:数据库分片后的跨机房容灾
├── 2015: **异地多活**架构
│ ├── 杭州+上海双活
│ └── RTO(恢复时间目标) < 30秒
├── 2015: 双11首次用OceanBase承载核心交易
└── 关键决策:单元化 vs 传统主备
2016-2020: 云原生 + 金融级平台
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
├── 2016: SOFAStack框架体系成型
│ ├── SOFA-Boot (Spring Boot增强)
│ ├── SOFA-RPC (高性能RPC)
│ ├── SOFA-Mesh (Service Mesh)
│ └── SOFA-JRaft (Raft一致性)
├── 2017: Service Mesh(MOSN)大规模落地
├── 2018: Kubernetes容器化
├── 2019: 云原生中间件全面上线
├── 2020: 双11峰值54.4万笔/秒
└── 关键决策:Service Mesh替代SDK式服务治理
2020-至今: 智能化 + 输出
━━━━━━━━━━━━━━━━━━━━━━━━
├── OceanBase开源 + 独立公司
├── SOFAStack开源
├── 蚂蚁云(mPaaS)对外输出
├── AI驱动的运维(AIOps)
├── 隐私计算(蚂蚁链MORSE)
└── 数字人民币技术支撑
知识点2:单元化架构(LDC)深度解析
LDC(Logical Data Center)是蚂蚁最核心的架构创新,解决了金融级系统的容灾和扩展问题。
传统架构的问题:
─────────────────
主机房A (Active) 备机房B (Standby)
┌──────────────┐ ┌──────────────┐
│ App Servers │ │ App Servers │ ← 冷备/温备
│ Database(主) │ ──复制──→│ Database(备) │ ← 数据延迟
└──────────────┘ └──────────────┘
问题:
1. 备机房资源浪费(平时不工作)
2. 切换时间长(分钟级,金融不可接受)
3. 数据一致性风险(主备延迟)
4. 单点瓶颈(所有流量都走主机房)
蚂蚁单元化架构(LDC):
─────────────────────
逻辑维度: 按用户ID hash分片
机房A 机房B
┌─────────┬─────────┐ ┌─────────┬─────────┐
│ Zone A1 │ Zone A2 │ │ Zone B1 │ Zone B2 │
│(用户0-24)│(用户25-49)│ │(用户50-74)│(用户75-99)│
│ App+DB │ App+DB │ │ App+DB │ App+DB │
│ 完整闭环 │ 完整闭环 │ │ 完整闭环 │ 完整闭环 │
└─────────┴─────────┘ └─────────┴─────────┘
↑ ↑
└────── 跨Zone调用(仅必要时)──────┘
每个Zone:
├── 自己的App服务集群
├── 自己的数据库分片
├── 自己的缓存/消息
├── 自成闭环,独立处理本Zone用户的请求
└── 横向扩展: 加Zone即可
关键设计:
1. RZone(Region Zone): 按用户ID路由的业务Zone
2. GZone(Global Zone): 全局共享数据(如汇率、配置)
3. CZone(City Zone): 城市级数据(如本地商户)
LDC的容灾能力:
正常运行:
机房A: Zone A1(0-24) + Zone A2(25-49) ← 各处理50%流量
机房B: Zone B1(50-74) + Zone B2(75-99) ← 各处理50%流量
机房B故障:
机房A: Zone A1(0-24) + Zone A2(25-49) + Zone A3(50-74) + Zone A4(75-99)
↑ 接管B的Zone
← RTO: 30秒内完成
核心优势:
1. 双活: 两个机房都在处理实时流量(不浪费资源)
2. 快速切换: 30秒内完成流量接管(vs 传统方案分钟级)
3. 数据一致: 每个Zone的数据是完整闭环(不依赖跨机房复制)
4. 线性扩展: 流量增长→加Zone,不需要改架构
知识点3:OceanBase分布式数据库
OceanBase是蚂蚁自研的金融级分布式关系型数据库,2021年在TPC-C基准测试中打破世界记录。
为什么自研?
─────────
2010年的困境:
├── Oracle: 性能极限 + 许可费太贵 + 无法水平扩展
├── MySQL: 不支持分布式事务 + 分库分表太复杂
├── NoSQL: 不支持ACID事务 → 金融不可接受
└── 结论: 没有现成方案,只能自研
OceanBase架构:
─────────────
┌──────────────────────────────────────────┐
│ SQL层 │
│ 兼容MySQL/Oracle协议,支持标准SQL │
├──────────────────────────────────────────┤
│ 事务层 │
│ 强一致性(Paxos协议) │
│ 分布式事务(2PC + 优化) │
├──────────────────────────────────────────┤
│ 存储层 │
│ LSM-Tree + 基线数据/增量数据分离 │
│ 自动分片 + 负载均衡 │
├──────────────────────────────────────────┤
│ 复制层 │
│ 多副本(3/5副本) │
│ Paxos自动选主 │
│ RPO=0(零数据丢失) │
└──────────────────────────────────────────┘
OceanBase vs 传统方案:
| 维度 | Oracle RAC | MySQL+分库分表 | OceanBase |
|------|-----------|---------------|-----------|
| 扩展性 | 有限(共享存储) | 中(手动分片) | 自动水平扩展 |
| 一致性 | 强 | 弱(跨库) | 强(Paxos) |
| 事务 | 完整ACID | 有限(跨库事务复杂) | 完整分布式ACID |
| 成本 | 极高 | 低 | 中 |
| 运维 | 复杂 | 极复杂(分片管理) | 自动化 |
| RPO | 依赖存储 | >0 | 0 |
知识点4:金融级分布式事务
蚂蚁在分布式事务上的实践是行业标杆:
场景: 用户从余额宝赎回到银行卡
涉及: 余额宝系统 + 账务系统 + 银行渠道
=== 方案对比 ===
方案1: XA分布式事务
├── 优点: 强一致性
├── 缺点: 性能差(长时间锁)、可用性低(任何参与者故障整个事务阻塞)
└── 蚂蚁评价: 金融级不可用(可用性不达标)
方案2: TCC (Try-Confirm-Cancel)
├── Try: 冻结余额宝金额 + 预增银行卡余额
├── Confirm: 确认扣减 + 确认增加
├── Cancel: 解冻余额宝 + 撤回银行卡预增
├── 优点: 高性能(短锁)、高可用(可重试)
├── 缺点: 业务侵入大(每个服务要实现Try/Confirm/Cancel)
└── 蚂蚁实践: 核心交易链路使用
方案3: Saga
├── 正向流程: 扣减余额宝 → 增加银行卡
├── 补偿流程: 如果增加银行卡失败 → 回加余额宝
├── 优点: 业务侵入小(只需正向+补偿)
├── 缺点: 中间状态可见(临时性不一致)
└── 蚂蚁实践: 非核心链路使用
方案4: 事务消息(蚂蚁首创的可靠消息方案)
├── 步骤1: 发送半消息(Prepared)
├── 步骤2: 执行本地事务(扣减余额宝)
├── 步骤3: 确认消息(Commit) 或 回滚消息(Rollback)
├── 步骤4: 消费者执行(增加银行卡)
├── 优点: 最终一致性 + 高性能 + 低侵入
├── 缺点: 不是实时一致
└── 蚂蚁实践: 异步链路广泛使用
=== 蚂蚁的选择策略 ===
核心交易(资金变动): TCC → 强一致性
非核心(通知/统计): 事务消息 → 最终一致性
长流程(放款): Saga → 补偿机制
知识点5:SOFAStack开源架构
SOFAStack生态全景:
服务框架层:
├── SOFA-Boot: Spring Boot增强(多应用上下文隔离)
├── SOFA-RPC: 高性能RPC框架(Bolt协议)
├── SOFA-Registry: 服务注册中心(AP模式)
└── SOFA-Tracer: 分布式链路追踪
Service Mesh层:
├── MOSN: Go语言Sidecar Proxy
│ ├── 替代Envoy(蚂蚁定制需求)
│ ├── 协议转换(Bolt/Dubbo/HTTP)
│ └── 平滑升级(热迁移连接)
└── SOFAMesh: 控制面(基于Istio)
数据层:
├── OceanBase: 分布式关系数据库
├── SOFAJRaft: Raft一致性库
└── Seata(前身FESCAR): 分布式事务中间件
运维层:
├── CafeDeployment: K8s增强部署
├── AntMonitor: 金融级监控
└── 混沌工程: ChaosBlade
知识点6:双11金融级事务保障
双11的技术挑战:
─────────────
2020年双11:
├── 峰值: 54.4万笔/秒
├── 0资金差错
├── 系统可用率: 99.99%+
└── 支付成功率: 99.99%
保障措施:
─────────
1. 容量规划
├── 提前3个月压测(全链路)
├── 按3倍峰值预估准备资源
└── 弹性伸缩预案
2. 流量管控
├── 排队机制(超过容量排队等待)
├── 限流降级(非核心功能关闭)
└── 流量调度(跨Zone均衡)
3. 资金安全
├── TCC事务保证一致性
├── 实时对账(交易后5分钟内核对)
├── 异常自动挂起(而非错误处理)
└── 人工补偿通道(最后防线)
4. 灰度发布
├── 双11前2周代码冻结
├── 任何变更需要3级审批
└── 秒级回滚能力
5. 应急预案
├── 300+预案(涵盖每个可能的故障场景)
├── 每年演练2次(断网/断电/机房故障)
└── 30秒内完成Zone切换
对比分析
蚂蚁 vs 微众银行 vs Stripe 架构对比
| 维度 | 蚂蚁金服 | 微众银行 | Stripe |
|---|---|---|---|
| 创立 | 2004 | 2014 | 2010 |
| 定位 | 超级金融App | 互联网银行 | 全球支付基础设施 |
| 语言 | Java | Java + Go | Ruby → 多语言 |
| 数据库 | OceanBase(自研) | TDSQL(腾讯) | 自建(MySQL系) |
| 架构模式 | 单元化LDC | 分布式核心银行 | 单体→SOA |
| 容灾方案 | 异地多活 | 两地三中心 | 多Region |
| 微服务框架 | SOFAStack(自研) | Spring Cloud | Ruby Monolith |
| 服务数量 | 10,000+ | 1,000+ | 几百 |
| 峰值TPS | 54.4万/秒 | 3万/秒 | 数万/秒 |
| 开源贡献 | SOFAStack/OceanBase | FISCO BCOS | Stripe API标准 |
架构演进阶段对比
| 阶段 | 蚂蚁(2004-2024) | 典型银行(2000-2024) |
|---|---|---|
| 起点 | PHP单体 | 大机(IBM) |
| 第一次变革 | PHP→Java(2006) | 核心系统集中改造 |
| 第二次变革 | 单体→SOA(2008) | 引入ESB |
| 第三次变革 | 去IOE→分布式(2010) | 通常在2018-2022 |
| 第四次变革 | 微服务+LDC(2014) | 很多还在SOA阶段 |
| 第五次变革 | 云原生(2018) | 刚开始规划 |
| 驱动力差异 | 业务增长倒逼 | 监管要求/成本压力 |
| 速度差异 | 快(互联网基因) | 慢(合规审慎) |
架构设计实操
实操:蚂蚁架构演进时间线分析
关键架构决策点(ADR视角)
## ADR-2006: PHP→Java迁移
背景: PHP性能瓶颈,交易量增长10倍
选择: Java(Spring + iBatis)
否决: 继续PHP优化(天花板太低)、C++(开发效率太低)
理由: Java生态成熟、人才充足、性能够用
后果: 奠定了后续20年的技术栈基础
## ADR-2008: 单体→SOA拆分
背景: 单体代码库太大,50+人改一个代码库,冲突严重
选择: 按业务域拆分(交易/支付/账务/会员)
否决: 继续单体(模块化)
理由: 组织结构匹配(康威定律) + 独立部署需求
后果: 服务间通信成本增加,但开发效率大幅提升
## ADR-2010: 去IOE(自研OceanBase)
背景: Oracle单机扩展极限,许可费年均数千万
选择: 自研分布式数据库OceanBase
否决: MySQL分库分表(一致性不够)、Oracle RAC(太贵、扩展有限)
理由: 金融业务需要强一致性+水平扩展,没有现成方案
后果: 巨大研发投入(数百人年),但建立了核心技术壁垒
权衡: 这是一个极其大胆的决策,只有蚂蚁规模的业务压力才能justify
## ADR-2014: 单元化架构(LDC)
背景: 微服务+分库分表后,跨机房的数据一致性和容灾变得极其复杂
选择: 单元化——按用户ID分Zone,每个Zone自成闭环
否决: 传统主备(RTO太长)、两地三中心(资源浪费)
理由: 双活(不浪费资源) + 快速容灾(30秒) + 线性扩展
后果: 架构复杂度极高,但解决了金融级容灾的根本问题
前提: 业务可以按用户ID分片(这是关键约束)
## ADR-2017: Service Mesh(MOSN)
背景: 数千微服务的SDK升级太痛苦(每次升级要改所有服务)
选择: Service Mesh + 自研MOSN Sidecar
否决: 继续SDK模式(升级成本太高)、Envoy(不满足定制需求)
理由: 基础设施能力下沉到Sidecar,业务代码不再耦合治理逻辑
后果: 大规模部署MOSN,实现了服务治理的"无痛升级"
架构演进的启发
蚂蚁架构演进的关键规律:
1. 业务倒逼架构
├── 不是"我们要用最新技术"
└── 而是"当前架构扛不住了,必须变"
2. 渐进式演进
├── 每次只解决当前最痛的问题
├── 不做过度设计
└── 但每一步都为下一步留有余地
3. 组织和架构协同
├── SOA拆分和组织拆分同步进行
├── 微服务化和团队自治同步
└── 康威定律是最大的架构约束
4. 自研的判断标准
├── 不是所有东西都自研
├── 只有核心且无现成方案时才自研
└── OceanBase自研是因为真的没有替代品
└── 而SOFA-RPC不如OceanBase"必要",但也自研了(规模决定)
5. 架构决策的勇气
├── 2010年决定自研数据库是极大的赌注
├── 投入数百人年,3-5年才看到回报
└── 只有深刻理解业务本质才能做出这种决策
AI增强实践
AI辅助架构案例分析
Prompt: 请深度分析蚂蚁金服2010年"去IOE"决策:
1. 当时的技术选型全景(有哪些可选方案?)
2. 为什么选择自研OceanBase而不是用MySQL/PostgreSQL集群?
3. 这个决策的风险有多大?如果失败了会怎样?
4. 有没有其他公司做过类似决策?结果如何?
5. 如果今天(2026年)面临同样问题,你会做同样的选择吗?
(考虑CockroachDB/TiDB/YugabyteDB等已成熟的方案)
6. 这个案例对中小型金融公司有什么启发?
AI辅助架构方案评估
Prompt: 我在一家中型银行(年交易量1亿笔),
面临和2010年蚂蚁类似的数据库扩展问题。
当前状态:Oracle RAC(2节点),CPU使用率已达75%
选项:
A. Oracle RAC扩展到4节点
B. 迁移到OceanBase
C. 迁移到TiDB
D. MySQL分库分表
E. PostgreSQL + Citus
请从以下维度对比分析:
1. 成本(3年TCO)
2. 迁移风险
3. 性能天花板
4. 运维复杂度
5. 人才可获取性
6. 金融合规(强一致性保证)
与Web3/DeFi的关联
DeFi的"蚂蚁式"演进
DeFi协议的架构演进和蚂蚁有很多相似之处:
Uniswap的演进 vs 蚂蚁的演进:
蚂蚁:
PHP单体 → Java SOA → 微服务 → 单元化 → 云原生
│ │ │ │ │
└ 业务倒逼 └ 规模倒逼 └ 效率倒逼 └ 容灾倒逼 └ 效率再倒逼
Uniswap:
V1(2018) → V2(2020) → V3(2021) → V4(2024)
│ │ │ │
└ 验证模型 └ 安全+功能 └ 资本效率 └ Hook可扩展
└ 单Pool └ 任意对 └ 集中流动性 └ Singleton
共同规律:
1. 每次升级解决当前最痛的问题
2. 渐进式演进(新旧版本并行)
3. 核心创新(LDC/集中流动性)需要深刻理解业务本质
4. 越到后期,架构越注重可扩展性和效率
金融级要求的对比
| 维度 | 蚂蚁(CeFi) | DeFi |
|---|---|---|
| 资金安全 | TCC事务 + 对账 + 人工补偿 | 智能合约ACID + 审计 |
| 一致性 | 强一致性(Paxos/OceanBase) | 链上强一致性(共识) |
| 容灾 | 单元化+异地多活 | 节点冗余+去中心化 |
| 扩展 | 分片+单元化 | Layer2/分片链 |
| 不可变性 | 可回滚(数据库事务) | 不可回滚(链上确认后) |
| 审计追溯 | 内部日志+对账 | 链上公开透明 |
今日思考
思考题1:自研 vs 采购 vs 开源的边界
蚂蚁选择自研OceanBase是因为2010年没有满足需求的现成方案。但今天有了TiDB、CockroachDB等开源选择。如果你是今天的蚂蚁架构师,还会自研数据库吗?"自研的边界"在哪里?
思考题2:单元化架构的局限性
LDC的前提是"业务可以按用户ID分片"。什么样的金融业务无法按用户分片?遇到这种情况怎么办?
思考题3:架构演进的节奏
蚂蚁的架构演进看起来很"自然",但实际上每次变革都是在巨大压力下做出的。你认为架构变革应该"痛了再改"还是"提前预判"?在你的经验中,哪种模式更成功?
面试题准备
面试题1:蚂蚁金服的单元化架构解决什么问题?
30秒版本: 单元化架构(LDC)解决了金融级系统的两大核心问题:一是异地容灾的RTO——传统主备切换需要分钟级,单元化可以30秒内完成Zone级切换;二是线性扩展——按用户ID分片,每个Zone自成闭环,加Zone即可扩容。
2分钟版本: 单元化架构是蚂蚁在2014年面临的一个关键创新。当时的问题是:微服务+分库分表后,系统跨机房的依赖关系变得极其复杂,传统的主备容灾方案有三个致命缺陷:
- 资源浪费:备机房平时不处理流量,白白消耗资源
- 切换太慢:主备切换涉及数据库、缓存、服务注册等多个层面,分钟级的RTO对金融不可接受
- 数据风险:主备复制有延迟,切换时可能丢数据
LDC的核心思路是把大系统切成多个独立闭环的"单元"(Zone),每个Zone处理特定用户群的所有请求,包含完整的App+DB+Cache+MQ。这样:
- 双活:所有机房都在处理实时流量
- 快速容灾:Zone级切换,30秒内完成
- 线性扩展:流量增长→加Zone
关键前提是业务可以按用户ID分片。对于全局性数据(如汇率、配置),蚂蚁设计了GZone来处理。
追问准备:
Q: 什么业务不适合单元化? A: 需要全局视图的业务——比如"全网风控"需要看所有用户的交易模式,就不能按用户分Zone。蚂蚁用GZone处理这类需求,但GZone本身成为了一个复杂的挑战。
面试题2:金融级分布式事务如何保证?
30秒版本: 蚂蚁使用分层策略:核心资金链路用TCC(强一致性,高性能),非核心链路用事务消息(最终一致性,低侵入),长流程用Saga(补偿机制)。关键是不追求所有场景都用最强一致性,而是根据业务容忍度选择合适的方案。
2分钟版本: 金融级分布式事务的核心挑战是在一致性、可用性、性能三者之间取舍。蚂蚁的实践是分场景选择不同方案,以实际案例说明:
用户转账(核心链路)→ TCC Try:冻结转出方金额 + 预增转入方金额 Confirm:确认扣减 + 确认增加 Cancel:解冻 + 撤回 选TCC的原因:资金操作不允许任何不一致,哪怕是临时的。TCC的"冻结"机制保证了在整个事务周期内资金状态是确定的。
支付成功后发通知(非核心链路)→ 事务消息 支付服务完成后发一条消息到Kafka,通知服务消费后发短信。如果通知失败可以重试,不影响支付结果。用事务消息保证"支付成功就一定会发通知"(但通知可能延迟几秒)。
关键洞察:100%的业务场景中,只有20%需要强一致性,80%最终一致性就够了。把TCC用在20%最关键的地方,其余80%用更轻量的方案,这是蚂蚁架构高性能的关键。
学习资源
| 资源 | 类型 | 推荐度 |
|---|---|---|
| SOFAStack GitHub | 开源代码 | ★★★★★ |
| OceanBase GitHub | 开源代码 | ★★★★★ |
| 蚂蚁金服技术博客 | 技术文章 | ★★★★★ |
| 金融级云原生架构(蚂蚁团队) | 书 | ★★★★★ 强推 |
| OceanBase技术内幕 | 官方文档 | ★★★★ |
| SOFA-RPC设计文档 | 设计文档 | ★★★★ |
明日预告
Day 29: 案例分析(2):Stripe支付架构 — 从中国金融科技标杆转向全球支付基础设施标杆。Stripe的API设计哲学、Ruby单体的坚守与演进、幂等性工程、优雅降级——和蚂蚁走了一条完全不同的路,但同样成功。我们将写一篇完整的架构分析文章,对比两种截然不同的金融架构哲学。