1、PaxosStore在微信支付业务的实践问题与挑战微信支付业务的解决方案远距离容灾的高可靠存储设计未来规划数据业务背景与挑战十亿级用户、百亿千亿级服务支撑微信账号/消息/朋友圈/通讯录每天数万亿的读写量、峰值1亿+/秒开放平台,支付等业务持续增长2015年,除夕不眠夜,VPN修数据PaxosStore简介PaxosStore是什么?基于Paxos协议在园区数据中心间同步复制,提供灵活的数据模型和访问接口,支持亿行大表,并具备快速伸缩能力,低延迟低成本,强一致和高可用的分布式数据库系统。PaxosStore特点:无租约多主多写,可用性高达6个9的水平;针对业务和架构特点进行优化,整体成本降低15
2、+%;同一容灾、迁移框架下,支持多种数据模型(例如亿行大表);基于反馈的自适应迁移系统,提供快速伸缩的能力。PaxosStore简介:整体架构图数据模型的多样性业务需求:分析、提炼、抽象提供必要的功能接口可用性的级别不断被抬高微信支付业务远距离跨省容灾(华南、华东、华北)实时结算低延迟的要求PaxosStore取代同城MySQL强一致、高可用、低延迟、快速伸缩问题与挑战微信支付业务的解决方案远距离容灾的高可靠存储设计未来规划余额需求经典案例:商户余额账户操作流水入库,不重不漏数据保证一条不丢业务逻辑与存储平台解耦限额需求场景:支付限额、支付次数维度:微信用户、银行卡、身份证普通接口:直接加减额
3、度2PC:预加减、成功、撤销数据结构抽象数据结构上的操作提供具体的接口基本操作组合提供两阶段(2PC)支持Prepare/Commit/Roll Back数据保证一条不丢MySQL主备同步缺陷(异步同步)数据保证一条不丢MySQL主备同步缺陷(半同步)思考题:假设不存在脑裂的情况下,如何做到强一致?数据保证一条不丢Paxos:Indeed,all working protocols for asynchronous consensus we have so far encountered have Paxos at their core.-Chubby世上只有一种世上只有一种一致性一致性协议协
4、议,那就是那就是Paxos。Paxos数据保证一条不丢Why not NRW(QuorumKV)?Vr+Vw V,Vw V/2保证强一致情况下:可用性低数据保证一条不丢数据副本之间对齐变更日志实时CRC校验数据副本损坏探测操作流水订阅需求不重不漏、满足多订阅需求(对账、查询、分析等)如何获得操作流水推送到队列操作流水不重不漏一般可容忍少量重,但不能接受漏Log文件删除时剥离LSM引擎异步推送,不影响实时任务每个Paxos Group实例维护同步版本解决方案要点总结基于树结构的基本操作组合低耦合、支持业务快速开发数据保证一条不丢PaxosStore的强一致同步代替MySQL的主备同步一些额外措施
5、(数据对齐、实时校验、损坏探测)操作流水入库不重不漏、支持多订阅需求问题与挑战微信支付业务的解决方案远距离容灾的高可靠存储设计未来规划什么是远距离容灾存储?强一致 vs 最终一致数据重要性 vs 用户体验 vs 对账修复成本三地 vs 两地PaxosStore跨园区容灾模式伸缩:按Set隔离、一致性哈希容灾:数据三园区分布存储:单机作为数据副本节点直接升级为跨城容灾模式运营系统不成熟单机故障危害放大(园区间延迟14ms,城市间延迟约30ms)跨园区容灾跨园区容灾跨城容灾跨城容灾跨城容灾存储架构目标数据在城市间强一致同步复制拥有成熟稳定的运营系统写请求通常只需要一次跨城RTT延迟读请求支持本城读
6、Paxos是最优选择复用跨园区模式的系统避免单机故障抖动影响常量服务(终态直接应答)以单机作为副本节点的分层结构逻辑层与存储引擎分离计算存储分离?PaxosStore集群(StringKV)逻辑层与存储引擎分离复用跨园区容灾模式下的基础设施(迁移、冷备、路由中心)城市数据中心内自治3个副本=9个副本天津IDC采用见证者模式9个副本=6个副本逻辑与存储引擎分离无状态逻辑服务(抢占式操作数据)存储引擎服务提供CAS接口区别于基于分布式锁的架构锁租约时长一般为10s1minBigT