微信红包之CBA实践

2020-02-27 130浏览

  • 1.移动互联网海量访问系统设计 微信红包之 CBA 实践 腾讯 . 微信事业群 jerizhang( 张晋铭 ) 2014.12
  • 2.内容 1. 2. 3. 4. 微信红包业务简介 CAP 在微信红包中的应用 BASE 在微信红包中的应用 ACID 及分布式事务处理
  • 3.微信红包业务特性 转帐 熟悉 发 拆 微信 红包 抢 营销 单向 群关系链 一般 朋友圈 互动 陌生 • • • • • • • 看似简单 发—支付 抢—抢资格 拆—资金入帐 解决海量支付问题 解决抢红包冲突抢问题 , 快速入帐 转发控制 • • 基于朋友圈互动 一种新型企业营销工具 • • • 关系链复杂 群庞大 , 并发发 高、 发 转发控制
  • 4.微信红包系统主要模块 统一接入网关 微信基础服务 红包业务集群 红包业务集群 缓存 缓存 消 息 总 线 DB 支付 支付 核心事务处理集群 核心事务处理集群 同步 DB DB DB DB 风控系统 账务 / 结算系统 DB DB • 网关 业务接入层 多地部署,就近访问 • 红包业务集群 分布式系统,处理抢 / 拆 / 收等逻辑 • 缓存 /DB 微信红包的业务层数据 • 消息总线 承接快慢系统 , 异构系统的消息中转 • 支付核心事务处理集群 负责资金交易 • 微信基础服务 提供用户基础资料的基础服务 • 风控系统—保障系统安全 • 财务 / 结算 主要对帐 / 清算
  • 5.CAP简介 CAP • Consistency : 数据一致更新,所有数据变动都是同步的 • Availability : 可用性 , 好的响发发 性能 发 , 快速获取数据 • Partition tolerance : 分区容发发 性, 可靠性 分布式系统只满足其中两个特性 满足AP:• coda • Dns • webcache 满足CA:• Single-site databases • xFS file system 满足CP:• Distributed locking
  • 6.红包 CAP 应用 发 抢 拆 查 • 分两步 • 支付完成,更新 DB 状发发 ,同步订 发 发发 发 cache, 如果网络 异常,可允许与 DB 不一致 • 发送红包做状态 发发,可做状态修 复 • 用发发发 先发发 到发发 格, 发 数据不要求发 发 精 发 确,只数据是发 发 一致即可,可用性 要求强 • 发包 数据数量要求 精准 • 拆过程更新各类数 据较多,由于网络 原因可能失发 了, 发发 但是数据最终同步 一致 • 入发 最发 发 成功即 发发 可 • 优先主 cache发 备 cache-> 备 DB> 主 DB ,必要时 降发 服 发 发发 , • 可用性要求高,数 据一致性要求可降 级,在可接受时间 窗口内完成
  • 7.一致性 / 冲突解决方式 R + 客户端 W <= N 弱一致性 按红包聚合路由 R • • • + W > N R 读取数据的节点数 W 数据更新需要完成的节点 N 数据复制份数 红包业务集群 cache cache 发一 致性 dao dao dao dao DB DB DB DB
  • 8.BASE 原理 BA(Basic Availability) 基本可用性 S(Soft state) 柔性状发 E(Eventuall consistency) 最发发 一致性 发发 最终目标 : 柔性 , 实际 999.99% 的可 用性 Eventually consistent Soft Aavailable state Basically
  • 9.BASE 实用实践 • 基本可用性 : 数据分区,发现机器故障 . 只影响部分进行中订单,快速切换可重新使用 • soft-state 是否发被抢收,发送者对时延要求没那么强,状态在一定时间缓存 • 最终一致 收 / 发状态最终一致 , 订单数据 , 用户数据最终同步
  • 10.ACID 在微信红包中的应用 A C I D 原子性 一致性 隔离性 持久性 Safe operation
  • 11.分布式事务 (DTP) 模型简介 AP TM RM DB RM DB EM RM DB T T1 T2 T3 … Tn P P1 P2 P3 … Pn C C1 C2 C3 F F1 F2 F3 … Fn R R1 R2 R3 … Rn … Cn
  • 12.宋芮莹 Ring Song Ad. Operation Manager InfoQ ChinaMP:+86 13810479324Email:ring@infoq.com