点击上方“码农突围”,马上关注

这里是码农充电第一站,回复“666”,获取一份专属大礼包

真爱,请设置“星标”或点个“在看”

来源| 阿里云峰会

文| 技术领导力社区

本文整理自,阿里高级技术专家-许文奇在2019阿里云峰会上的分享《技术中台-分布式架构在蚂蚁金服的实践》。

一、分布式架构的优势和理念

01

传统单体架构特点

(点击图片放大)

通常一个初创型项目,都是从单体架构开始的。

优点就是快,易于开发、测试、部署,一个WAR包发上生产就完事了。

缺点也很明显,因为所有模块都在一个程序包里,导致编译慢、启动慢、代码冲突,每次合并代码的时候都是恶梦,发布成功率?完全靠运气。

02

微服务架构 vs 单体架构

(点击图片放大)

复杂度较小时采用单体应用生产效率更高,复杂度到了一定规模时单体应用的生产效率开始急剧下降,这时对其进行服务化拆分才是合算的。

微服务架构之所以得到广泛认可,源于对业务多变性的不可预测,微服架构能够不断的自演化 ,进而快速适应业务变化。

03

模块化开发

微服务架构,从业务顶层设计开始,按照业务线进行模块拆分,从表现层、逻辑层、数据层进行独立的剥离单体应用。很多企业都经历过单体应用到服务化应用的拆分过程,这里要注意业务的连续性、数据的完整性问题。

04

微服务架构的负载均衡优势

以前通常用LVS、F5作为接入层的负载均衡服务,主要提供限流、负载、安全等等。

在微服务架构中,由网关作为接入层,提供轻量级的负载均衡、协议转换、鉴权等服务,微服务通常有服务治理框架,如DUBBO等,提供服务治理、服务注册、服务发现、隔离等。

05

数据访问瓶颈解决方案--数据库垂直切分

分布式架构是如何解决数据访问瓶颈的呢?首先是数据库的垂直切分,比如,按用户、交易、账务拆分到独立的数据库当中,缓解了数据存储和访问的压力,当然也可以做主备库,进行读写分离的。

06

数据访问瓶颈解决方案--数据库水平切分

其次,进行数据库的水平切分,比如交易数据库和数据表的数据量太大,可以按交易时间进行分表、分库,拆分表的数量计算方法见上图。

拆表拆库是解决数据访问、存储问题,但是会给数据查询带来很大麻烦,比如跨多表、多库的复杂查询场景。解决的办法很多,通常有:用ES进行复杂查询,筛用ID再到库里捞数据(即复杂查询拆分多次查询),或用分布式海量数据库方案,不去做太细粒度的拆分库表,如下面会提到的OceanBase。

二、分布式架构实践举例--分布式TA系统

07

传统TA系统架构

传统TA系统架构,清算串行效率低,无法通过增加机器线性扩展性能,一般使用大事务,出现问题全部回滚。

08

分布式TA系统架构

分布式TA系统架构,结构更合理,也更复杂。分成了:接入层、业务服务层、SOFAStack层、LAAS、运维工具链、治理控制。

接入层:包括协议转换、访问控制、文件传输、运维工作台。

业务服务层:即业务核心逻辑服务,如:账户、交易、账单、清算等。

SOFAStack:蚂蚁金服的通用服务组件,许多都开源了,包括:微服务框架、分布式事务、任务调度、消息队列、数据代理、链路跟踪等。

分布式TA系统的需求攻克的技术难题。分布式清算任务如何高效实现?分布式下,加大应用处理出错可能性,那清算任务如何确保正确性?下面会谈谈如何解决。

09

分布式任务调度平台

分布式任务调度平台,支持:

自定义分片,高效利用集群计算能力。

执行中可对任务进行暂停/续跑,强制取消。

任务失败重试机制,保障整体计算任务成功。

10

清算任务调度

清算任务调度,整个架构分为:1)任务拆分,即申请交易文件,按一定的逻辑进行数据分片;2)任务执行,将执行处理过后的数据,存入流水库;3)核心服务,包括交易、清算、账务、账户等。

11

清算的容错和核对机制

清算的容错和核对机制,包含:日初始化、文件导入、清算处理、收益计算、份额调整、清算导出、二次清算、收益导出。

每个环节都可以冲正重做。

可以按文件、用户、备份点进行作业回滚。

优点是,任意流程可回滚、精准逐笔核对,支持按中台用户回滚,缩短了清算时长。

三、分布式架构下如何保障系统的可靠性及稳定性

12

灰度发布机制

灰度发布机制,流程包括:beta发布、分组发布、灰度引流、全量发布。

清算灰度,可以灵活的按用户维度抽取分片,缩短灰度时间。

13

线上全链路压测

线上全链路压测,通过数据访问代理,压测数据进入线上影子表,不影响正常业务数据,全链路压测特点有:

1、压测环境复用生产,结果可靠;优于线下。

2、压测数据打标无法进入生产环境,表级隔离。

14

OceanBase高可用机制

OceanBase高可用机制,基于Paxos协议的典型三副本部署:

1)数据强一致性;

2)持续可用;

3)主备自动切换;

4)单机、机房、城市级故障:不停服务,不丢数据;

OceanBase分布式数据库方案,优于商用数据库的主备库方案,主要体现在:分布式数据库,写事务到达超过半数库,少数库异常不影响业务,两地三中心多活,灰度升级。

15

OceanBase常用部署方案

OceanBase的部署方案有:

同城三机房,同城多个核心机房,相距30公里以内,延迟约在0.5~2ms之间;

两地三中心,正常情况下和同城三中心部署的延迟一致,其中一个城市的一台ObServer 宕机会增加异地同步延迟。

16

同城双活容灾架构

同城容灾双活架构,平时以主机房为主,承载日常交易,少量交易走备机房,架构特点是:

1)同机房优先,避免跨损耗

2)对应用无任何侵入

3)像单机房一样开发部署应用

4)容灾自动切换

以上就是,技术中台-分布式架构在蚂蚁金服的实践,如果觉得本文对你有帮助,请点“在看”、分享朋友圈,你的支持是我们坚持写下去的理由!

---END---
重磅!码农突围-技术交流群已成立
扫码可添加码农突围助手,可申请加入码农突围大群和细分方向群,细分方向已涵盖:Java、Python、机器学习、大数据、人工智能等群。一定要备注:开发方向+地点+学校/公司+昵称(如Java开发+上海+拼夕夕+猴子),根据格式备注,可更快被通过且邀请进群
▲长按加群
推荐阅读•  28岁退休程序员郭宇回应来了:只想做好自己的事,几天内有2600人加好友,问我“挣了多少钱”•  阿里巴巴为什么不用 ZooKeeper 做服务发现?•  SQL语句大全,所有的SQL都在这里•  懵逼!面试官问:高并发下,你都怎么选择最优的线程数?•  面试:HashMap 夺命二十一问!•  MySQL 大表优化方案最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。获取方式:点“在看”,关注公众号并回复 BAT 领取,更多内容陆续奉上。如有收获,点个在看,诚挚感谢明天见(。・ω・。)ノ♡

蚂蚁金服的技术架构,到底有多牛?相关推荐

  1. 独家 | 蚂蚁金服TRaaS技术风险防控平台解密

    小蚂蚁说: 在金融行业,风险防控能力的重要性不言而喻.而蚂蚁金服可实现高达99.999%的异地多活容灾,千亿级资金秒级实时核对"账.证.实"等能力也让业界有目共睹. 今年位于杭州的 ...

  2. 蚂蚁金服 TRaaS 技术风险防控平台解密

    在金融行业,风险防控能力的重要性不言而喻.而蚂蚁金服可实现高达 99.999% 的异地多活容灾,千亿级资金秒级实时核对"账.证.实"等能力也让业界有目共睹. 今年位于杭州的蚂蚁金服 ...

  3. 服务全球近 9 亿人后,蚂蚁金服的技术开放进入 3.0 时代

    小蚂蚁说: 2018年9月21日下午,一年一度的蚂蚁金服ATEC金融科技开放峰会顺利召开.围绕"预践未来数字金融",来自蚂蚁金服.花旗.麦肯锡.建行.DBS.光大.中国外汇交易中心 ...

  4. 蚂蚁金服ATEC技术探索大会造访伦敦,只为讲好一个普惠金融愿景

    小蚂蚁说: 英国当地时间6月11日,一年一度为期一周的伦敦科技周(London Tech Week)正式拉开帷幕.作为伦敦科技周的重要组成部分,蚂蚁金服ATEC技术探索大会在伦敦科技周首日在威斯敏斯特 ...

  5. 蚂蚁金服开放计算架构:下一代金融级计算架构

    当前互联网技术早已进入了大数据.人工智能的阶段,各种计算模式,计算引擎层出不穷.从10年前的MapReduce分布式计算开始,几乎每三年就会出现一次新的计算引擎更迭,从开山鼻祖的Hadoop,到后来流 ...

  6. 蚂蚁金服ATEC技术峰会:共探技术开放新生态

    小蚂蚁说: 就在9月21日,蚂蚁金服ATEC(Ant Technology Exploration Conference)技术探索大会的"金融科技开放峰会"和"蚂蚁区块链 ...

  7. 漆远:蚂蚁金服 AI 技术大揭秘, 开放“模型服务平台”

    7 月 22 - 23 日,在中国科学技术协会.中国科学院的指导下,由中国人工智能学会.阿里巴巴集团 & 蚂蚁金服主办,CSDN.中国科学院自动化研究所承办,云栖社区作为独家直播合作伙伴的 2 ...

  8. 阿里、腾讯、蚂蚁金服Java技术面试及经验总结(文末分享答案)

    在过去很长一段时间内,国内互联网一直处于三足鼎立状态,BAT即百度.阿里巴巴.腾讯.而在最新的互联网企业价值榜上,百度却被蚂蚁金服挤出前三的位置. 能够进一线互联网公司,是大部分程序员奋斗的目标,有很 ...

  9. 阿里、腾讯、蚂蚁金服Java技术面试及经验总结

    在过去很长一段时间内,国内互联网一直处于三足鼎立状态,BAT即百度.阿里巴巴.腾讯.而在最新的互联网企业价值榜上,百度却被蚂蚁金服挤出前三的位置. 能够进一线互联网公司,是大部分程序员奋斗的目标,有很 ...

最新文章

  1. Ubuntu16.04安装视觉SLAM环境(OpenCV)
  2. json loads No JSON object could be decoded 问题解决
  3. Ajax-基本概述(one)
  4. 网易云音乐:基于分布式图学习PGL的推荐系统优化之路
  5. 业务团队如何统一架构设计风格?
  6. 莫凡机器学习课程笔记
  7. MiniProfiler,一个.NET简单但有效的微型分析器
  8. 2016 linux发行版排行_选择困难症必看!云服务器如何选择操作系统,Windows和Linux哪个更好?...
  9. python图形模块_使用Python图形模块:有没有办法将当前窗口保存为图像?
  10. 计算两个日期间隔天数(距离(2024-7-7)间隔:1999天)
  11. 在ACCESS中使用Group By语句
  12. Node.js知识梳理之Node.js安装
  13. es6 混合commjs_Webpack打包ES6和CommonJs混合React
  14. centos7的telnet不通已经关闭防火墙,打开阿里云端口仍然ping不通的解决办法
  15. WebService之CXF框架
  16. python-for x in range (注意要点、细节)
  17. php-emoji使用微信,微信开发中emoji表情的问题
  18. 【附源码】Java计算机毕业设计安卓和悦少年文明礼仪监管APP(程序+LW+部署)
  19. 可能是这个夏天最有趣的100米了!| 谁在Reading Park
  20. LeetCode:数组(排列组合,二分查找I,二分查找II)

热门文章

  1. 22考研英语复习攻略:学长总结英语真题怎么刷
  2. 虚拟机---虚拟机打开控制台
  3. 计算机电脑主板电池,电脑主板电池怎么换
  4. windows下解决8080端口被占用
  5. [ue5]关卡设计与地编_材质
  6. What is asymptotically tight bound?
  7. SpringBoot下使用定时任务的方式全揭秘
  8. 机器学习面试准备之三、决策树与随机森林
  9. 开关电源控制环路设计
  10. 安卓7.0以上版本更新apk报错