当前位置: 首页 > 科技观察

蚂蚁金服“科技中台”:亿级分布式系统架构实践

时间:2023-03-19 23:37:55 科技观察

一、分布式架构的优势和理念从单体架构说起。优点是速度快,开发测试部署简单,一个WAR包发到生产就完事了。缺点也很明显,因为所有模块都在一个包里,导致编译慢,启动慢,代码冲突。每次合并代码都是一场噩梦。发布成功率如何?这全靠运气。02MicroserviceArchitecturevsMonolithicArchitecture(Source:AlibabaCloudSummit)复杂度小的时候,单体应用的生产效率更高。当复杂度达到一定规模时,单体应用的生产效率开始急剧下降。服务拆分具有成本效益。微服务架构之所以被广泛认可,源于业务可变性的不可预测性。微服务架构可以不断自我进化,快速适应业务变化。03模块化开发(来源:阿里云峰会)微服务架构从业务的顶层设计出发,按照业务线拆分模块,将单体应用与表现层、逻辑层、数据层独立分离.很多企业都经历过从单体应用到服务应用的拆分过程。这里要注意业务的连续性和数据的完整性。04微服务架构的负载均衡优势(来源:阿里云峰会)以往在接入层通常使用LVS和F5作为负载均衡服务,主要提供限流、负载、安全等。在微服务架构中,网关作为接入层,提供轻量级负载均衡、协议转换、认证等服务。微服务通常有一个服务治理框架,比如DUBBO,提供服务治理、服务注册、服务发现等功能。、隔离等05数据访问瓶颈解决方案--数据库垂直切分(来源:阿里云峰会)分布式架构如何解决数据访问瓶颈?首先是数据库的垂直切分,比如按照用户、交易、账户拆分成独立的数据库,缓解数据存储和访问的压力。当然也可以作为主备数据库,实现读写分离。06数据访问瓶颈解决方案--数据库水平切分(来源:阿里云峰会)其次,对数据库进行水平切分。library,分表数的计算方法见上图。拆表和拆库是为了解决数据访问和存储问题,但是会给数据查询带来很多麻烦,比如跨多表、多数据库的复杂查询场景。解决方案有很多,通常:使用ES进行复杂查询,过滤ID然后从库中取数据(即将复杂查询拆分成多个查询),或者使用分布式海量数据库解决方案,不做太细粒度的拆分分库分表,比如下面提到的OceanBase。2、分布式架构实践实例——分布式TA系统07传统TA系统架构(图片来源:阿里云峰会)传统TA系统架构清算序列化效率低下,无法通过增加机器来线性扩展性能。一般使用大交易。回滚所有问题。08分布式TA系统架构(来源:阿里云峰会)分布式TA系统架构结构更合理,也更复杂。分为:接入层、业务服务层、SOFAStack层、LAAS、运维工具链、治理控制。接入层:包括协议转换、访问控制、文件传输、运维工作台。业务服务层:业务核心逻辑服务,如:账户、交易、账单、清算等SOFAStack:蚂蚁金服的很多通用服务组件都是开源的,包括:微服务框架、分布式事务、任务调度、消息队列、数据代理、链路跟踪等分布式TA系统需要攻克的技术难点。如何高效执行分布式清算任务?在分布式环境下,应用处理出错的可能性增加,那么如何保证清算任务的正确性呢?下面就来说说如何解决。09分布式任务调度平台(来源:阿里云峰会)分布式任务调度平台支持:自定义分片,高效利用集群计算能力。执行过程中,可以暂停/继续任务,强制取消任务。任务失败重试机制保证了整体计算任务的成功。10清算任务调度(来源:阿里云峰会)清算任务调度,整个结构分为:1)任务拆分,即申请交易文件,按照一定逻辑进行数据分片;2)任务执行,处理后3)核心服务,包括交易、清算、账户、账户等11清算的容错和验证机制(来源:阿里云峰会)清算的容错和验证机制包括:每日初始化、文件导入、清算处理、收益计算、份额调整、清算导出、二次清算、收益导出。每个链接都可以重做。作业回滚可以按文件、用户或备份点执行。优点是任何流程都可以回滚,可以一一精准核对,支持中端用户回滚,缩短清算时间。3、分布式架构下如何保证系统的可靠性和稳定性12灰度发布机制(图片来源:阿里云峰会)灰度发布机制,流程包括:内测发布、群发布、灰度引流,并全面释放。清除灰度可以根据用户维度灵活提取切片,缩短灰度时间。13在线全链路压测(来源:阿里云峰会)在线全链路压测,通过数据访问代理,压测数据进入在线影子表,不影响正常业务数据,全链路压测的特点有:1、压测环境复用于生产,结果可靠;比离线好。2、压测数据stamping无法进入生产环境,需要进行表级隔离。14OceanBase高可用机制(图片来源:阿里云峰会)OceanBase高可用机制,典型的基于Paxos协议的三副本部署:1)数据强一致性;2)连续可用性;3)主备自动切换;4)单机、机房、市级故障:不停机服务,不丢失数据;OceanBase分布式数据库方案优于商业数据库的主备数据库方案,主要体现在:分布式数据库,写事务达到一半以上的数据库,少数数据库异常不影响业务,二地三中心会活得更多,灰度也会升级。15OceanBase常见部署方案(图片来源:阿里云峰会)OceanBase部署方案包括:同城三机房,同城多核心机房,相距30公里以内,延迟0.5~2ms左右;两地三中心,正常情况下延迟与同城三中心部署一致,一城一台ObServer宕机会增加异地同步延迟。16同城容灾双活架构(图片来源:阿里云峰会)同城容灾双活架构通常以主机房为主,承载日常事务,少量事务去备份电脑室。交叉损耗2)对应用无侵入3)像单机房一样开发和部署应用4)容灾自动切换