您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 金融资料 > 支付宝三年光棍节高可用系统架构的演变_胡喜
支付宝三年光棍节高可用系统架构的演变阿玺支付宝-技术部Mail:xi.hux@alipay.comweibo:支付宝_阿玺个人介绍•胡喜,花名阿玺,2007年加入支付宝,主持支付平台基础技术的架构设计与研发工作,并且参与支付宝核心支付平台的架构设计和系统升级。支付宝系统发展历程2005年挑战2011年+2006年2007年2008年2009年2010年架构服务范围:担保交易@淘宝交易笔数:1万/天代码量:十万级技术团队:约10人一代架构:烟囱型服务范围:交易@互联网交易笔数:50万/天代码量:百万级技术团队:约100人二代架构:面向服务型服务范围:多资金渠道、多支付工具、多应用场景交易笔数:约1000万/天11.11日:1280W代码量:千万级技术人员:1000人+服务范围:支付宝@everywhere业务量:亿级+11.11:3369W代码量:千万级+技术人员:异地/开放三代架构:云平台型2012.11.11系统必须具备交易处理能力:1亿+80亿+数据库事务500亿+的SQL执行1000亿+服务调用500+个应用协同完成Agenda•可伸缩性:提升容量百万级到亿级•故障容忍:99.9%到99.99%+•弹性控制:人工控制到秒级自动调度IDC一个简化的支付宝系统模型数据库交易系统账户系统V1LB可伸缩提升容量百万级到亿级IDC数据库的瓶颈数据库交易系统账户系统V1LB数据可伸缩性:数据垂直拆分IDC交易系统账户系统V2LB交易数据库账户数据库一致性瓶颈IDC交易系统账户系统V2LB交易数据库账户数据库业务一致性:service层的分布事务实现•一个完整的业务活动由一个主业务服务与若干从业务服务组成•主业务服务负责发起并完成整个业务活动•从业务服务提供TCC型业务操作•业务活动管理器控制业务活动的一致性,它登记业务活动中的操作,并在业务活动提交时确认所有的TCC型操作的confirm操作,在业务活动取消时调用所有TCC型操作的cancel操作与2PC协议比较•没有单独的Prepare阶段,降低协议成本•系统故障容忍度高,恢复简单主业务服务从业务服务A从业务服务B数据库数据库tryX1.tryX成功业务活动管理器活动日志启动业务活动登记业务操作提交/回滚业务活动confirmXcancelXtryYconfirmYcancelY2.tryY成功3.confirmX成功4.confirmY成功数据库单个库的瓶颈IDC交易系统账户系统V2LB交易数据库账户数据库数据可伸缩性:数据水平拆分与复制IDC交易系统账户系统V3LB交易数据库账户数据库交易数据库交易数据库账户数据库数据可伸缩性:交易数据拆分数据复制中心12n1核心交易数据(分表并分库)主交易系统交易处理服务(写场景)交易记录查询系统用户交易记录查询服务(读场景1)12n2商户查询系统交易记录数据(分表并分库)商户查询与对账(读场景2)12n3商户/平台商交易数据(分表并分库)分布数据访问层主网络伸缩瓶颈IDC交易系统账户系统V3LB交易数据库账户数据库交易数据库交易数据库账户数据库网络可伸缩性:消除网络设备瓶颈IDC交易系统账户系统V4交易数据库账户数据库交易数据库交易数据库confreg账户数据库服务器伸缩瓶颈IDC交易系统账户系统V4交易数据库账户数据库交易数据库交易数据库confreg账户数据库服务器伸缩:服务器扩展到多个IDCIDC1交易系统账户系统V5交易数据库账户数据库交易数据库交易数据库confregIDC2交易系统账户系统交易系统交易系统账户系统账户系统账户数据库跨机房通讯的瓶颈IDC1交易系统账户系统V5交易数据库账户数据库交易数据库交易数据库confregIDC2交易系统账户系统交易系统交易系统账户系统账户系统账户数据库IDC伸缩:部分独立IDCIDC1交易系统账户系统V6交易数据库账户数据库交易数据库交易数据库confregIDC2交易系统账户系统交易系统交易系统账户系统账户系统confreg账户数据库小结:提升容量百万级到亿级•数据的可伸缩性–垂直,水平拆分,复制,分布式事务•网络可伸缩性•IDC可伸缩性应用中间件技术架构展现服务容器协调应用应用中间件平台SOFA3(SCA:bundle,service/reference,pub/sub,extension,sla)CloudEngine(servlet3.0,drm,management,osgi)Apache/nginx(spdy,https)JVM(JVMTI,JNI)SOFA-MVC(fullstack)SOFA-Mashup(component)分布式session安全框架securityA/BTest组件组件集合(rule,jbpm,xts,cache,schedule)webTomcatDatasourcezdsdrmwebservicejetty协调中心(zdipper,zookeeper)调度中心(scheduler)配置中心(confreg2.0)分布式锁(dlslock)超时调度中心(timeout)故障容忍99.9%到99.99%+数据库单点故障IDC1交易系统账户系统V6交易数据库账户数据库交易数据库交易数据库confregIDC2交易系统账户系统交易系统交易系统账户系统账户系统confreg账户数据库故障容忍-消除数据库单点IDC1交易系统账户系统V7交易数据库账户数据库交易数据库交易数据库confregIDC2交易系统账户系统交易系统交易系统账户系统账户系统confreg交易failover数据库数据复制中心12n1核心交易数据(分表/分库/failover)主交易系统交易处理服务(写场景)交易记录查询系统用户交易记录查询服务(读场景1)12n2商户查询系统交易记录数据(分表并分库)商户查询与对账(读场景2)12n3商户/平台商交易数据(分表并分库)分布数据访问层主备故障容忍-数据库的failover服务依赖故障IDC1交易系统账户系统V8交易数据库账户数据库交易数据库交易数据库confregIDC2交易系统账户系统交易系统交易系统账户系统账户系统confreg交易failover数据库收费故障容忍-控制服务依赖交易系统交易引擎流程引擎规则引擎资金处理产品账接入商户通知数据持久收费接入统一事件扩展支付工具业务核查收费系统商户通知消费记录沟通商户查询营销核心账务风险核查消息系统超时处理担保交易即时到账交易货到付款交易异步交易事件处理产品账扩展支付工具扩展支付工具可靠可靠可靠可靠可靠可靠可靠非可靠非可靠强依赖弱依赖本地消息failover弱依赖开关IDC故障IDC1交易系统账户系统V8交易数据库账户数据库交易数据库交易数据库confregIDC2交易系统账户系统交易系统交易系统账户系统账户系统confreg交易failover数据库收费故障容忍-完全独立IDCIDC1交易系统账户系统V9交易数据库账户数据库交易数据库confreg交易系统账户系统IDC2交易系统账户系统交易数据库账户数据库交易数据库confreg交易系统账户系统账户数据库账户数据库GTM小结:99.9%到99.99%+•消除任何数据库单点•控制服务依赖•完全独立的IDC弹性控制人工控制到秒级自动调度弹性能力-监控平台日志模型计算模型监控报表弹性能力-秒级监控系统LogLogLogLogRealTime(msec/sec)LongTerm(Min/Hours)HDFSDataDataDataDataHBase/NoSQLMapReduceRealTimeComputeParserLayerParserLayerParserLayerParserLayerComputeLayerComputeLayerComputeLayerComputeLayerMile(NoSQL)AgentAgentAgentAgent弹性能力-自动化的调度AlipayElasticRestAPIOperationsAPISLAAPIConfigrationAPIDeploymentAPIHardwareAPI(IaaS)MonitoringAPIFlowPluginAPIMonitordataqueryAPIAnalysisAPI(Hadoop)应用运行数据的收集监控系统的数据建模和计算弹性平台的分析产生控制命令指令执行银行渠道数据采集银行渠道数据监控分析发现某银行A渠道异常根据模型产生调拨指令切换到某银行的B渠道治理–SOA调用弹性控制平台监控分析资损监控viceroy数据库基础监控(webchart)接口开放平台(openapi)数据平台mysql,oracle,mile,tair分布式计算平台Hadoop,Hive基础设施监控(samonitor网络,主机)业务基础监控平台(monitor4)监控事件及报警monitorevent监控模型平台监控数据同步agent流式计算弹性监控zscalemonitor发布监控秒,分钟聚合监控故障分析监控稳定性分析平台容量分析acm依赖分析sofarouter性能分析hotspot服务治理sg通用数据分析及模型清洗平台zanalysis资损分析弹性控制DRM3统一资源变更管理SLA管理opssla弹性计算平台zscale数据源管理应急故障大盘报表管理运维管理平台安全分析小结:人工控制到秒级自动调度•实时的系统监控能力•快速自动化的系统调度能力•精细化的系统治理能力总结弹性控制可伸缩故障容忍Mail:xi.hux@alipay.comweibo:支付宝_阿玺
本文标题:支付宝三年光棍节高可用系统架构的演变_胡喜
链接地址:https://www.777doc.com/doc-243066 .html