【技术干货】40页PPT分享万亿级交易量下的支付平台设计(5)

简介: 【技术干货】40页PPT分享万亿级交易量下的支付平台设计(5)

image.png


账务系统可伸缩,难点在于热点账户;热点账户即资金处理频繁、时间点密集、基于等待的数据库排它锁的大账户;正常情况下,我们开发人员首先是切入系统进行优化,但实际以业务为切入点会更好首先对业务场景进行优化,实现进出资金隔日,业务错峰,拆分收支账户,收款方到账准时实化,收款方到账准时实化;接下来才是系统上的优化,系统上做到分布式锁、资金资源池机制、缓冲记账、并发控制、异步化;最后是账户层面的优化,不同账户制定不同的策略。比如中间账户:只登记账户明细流水,不更新余额,日终进行汇总轧差,一次性更新;待清算账户:采用单边记账方式,待清算账户不做余额更新并且不登记账户明细流水,待日终进行单边汇总;特定业务收费账户:异步分段补账等,这样的优化才是最有效的,而且扩展性好,后期的维护成本也低;


image.png


在解决了核心瓶颈点之后,设计架构的演进路线也很重要;因为我们做系统重构是不能停业务的,就好比飞机在飞行的过程中,进行换引擎的操作;基于以上目标,我们进行架构重构,就需要注意这三点:


1、要与业务发展路线合拍,顺势而为:切忌沉浸在自己的技术世界里面,因为公司首先是盈利组织,研发首先要服务好业务,才能驱动业务,才能长远发展,阻碍业务发展的研发团队和研发技术方案是不长久的,特别是对于一个竞争对手激烈的高度发展的公司;


2、专注主线、边界优先,步步为营:就像装修房子一样,可以先把墙装好,但内部的每一个房间不一定马上装修,因为我们内部是可控的,内部系统重构可以放后,但是要先做提供给边界系统的接口,这样既可以很好的控制风险,也便于多团队之间的协同作战;


3、定期可视化投入产出比:因为金融系统不可能把业务停下来,他一定是在业务发展的过程当中,需要实时评估,重构和业务发展是否合拍,这样便于获得集团的大力支持,减少各方的不理解,减少很多不必要的阻碍,消除部门壁垒,消除决策层的顾虑;



image.png


实施的过程当中,如何管控项目?


项目前:需要消除风险,获得支持,确定项目价值与范围,明确业务影响 ,获得相关干系人支持,用架构概念验证原型;


项目中:做到短、平、快,严格控制项目范围扩张,Rebase不可避免的业务需求;


项目发布时:做到稳定,用户体验连续,基于场景的立体化监控与报警,比如有时监控时我们常发现单个系统的耗时、成功率等指标都正常,但实际影响了整个调用链,影响了某个场景,所以一定需要基于场景做立体化监控。其次,每个核心链路上的系统一定要经过应急预案的演练。然后,要保持悲观主义的心态终结者的思维,潜意识里面要假设重构时一定会有问题, 所以一定要守好上线的最后底线,要做到快速回滚和降级。


最后是阶段性复盘,聚焦目标,防止做的需求偏离业务目标,这一点对于研发管理者特别重要,通过这些回顾逐渐拿到和业务方的平等话语权;慢慢就会建立起和业务的一个很好的沟通渠道;


image.png


架构重构后需要验证合理性,怎么知道我们设计的架构就是满足我们的预期呢?主要包括3个方面:


1、新老场景的推演:新老场景是否都能支持;


2、核心服务的推演:上下游系统需要演练是否稳定 ,


3、非功能性的推演:系统是否可隔离、可配置、可监控、可回滚、无单点、无状态等;


主要推演架构的高可用、可伸缩、研发成本,运维成本和迁移成本5个指标,通过这5个指标在上述3个方面的推演,基本上就可以验证架构合理性了,其实做架构决策也可以参考这个依据,比如多个研发中心,让你做架构决策,这个系统谁做合适?特别是架构师怎么让自己的架构决策做到大家都认可,这种思维方式都可以参考;

相关文章
|
人工智能 Linux Shell
用命令修改宝塔面板修改默认端口
用命令修改宝塔面板修改默认端口
|
存储 数据中心
什么是T3机房?T1/T2/T3/T4机房等级对比详解
我们在购买IDC服务时都会选择T3机房或者T4机房,那么什么是T3机房?T3机房和T4机房有什么区别?服务器百科网来说说T1/T2/T3/T4机房等级对比详解: IDC机房等级划分 IDC机房的等级划分是根据《数据中心电信基础设施标准》而定的,它是美国国家标准学会(ANSI)颁布的,它将IDC数据中心(大型的设备和管理都比较完善的机房可以称为数据中心)基础设施的可用性定义了四种不同等级,即Tier 1、Tier 2、Tier 3和Tier 4四个等级。
20854 0
|
自然语言处理 监控 语音技术
STM32 使用SYN6288语音模块
STM32 使用SYN6288语音模块
2320 0
|
TensorFlow 算法框架/工具 异构计算
成功解决PackagesNotFoundError: The following packages are not available from current channels: tensorflo
成功解决PackagesNotFoundError: The following packages are not available from current channels: tensorflo
成功解决PackagesNotFoundError: The following packages are not available from current channels: tensorflo
|
7月前
|
Linux iOS开发 计算机视觉
GIMP 3.0.6 (Linux, macOS, Windows) 发布 - 免费开源图像编辑器
GIMP 3.0.6 (Linux, macOS, Windows) 发布 - 免费开源图像编辑器
573 0
|
消息中间件 架构师 Apache
一本书精通Apache RocketMQ
一本书精通Apache RocketMQ
485 3
|
关系型数据库 MySQL Linux
Linux下查看软件安装与安装路径
Linux下查看软件安装与安装路径
2180 0
|
测试技术 持续交付
提升软件测试效率的三大策略
在软件开发过程中,测试是一个至关重要的环节。本文将探讨如何通过优化测试流程、引入自动化测试和强化测试团队的技能培训,来显著提高软件测试的效率。我们将一步步解析每个策略的具体实施方法和预期效果,帮助你在保证质量的同时,缩短产品上市时间。
|
人工智能 自动驾驶 搜索推荐
AI技术在现代生活中的应用与影响
本文将探讨AI技术在现代生活中的广泛应用,以及它对人们生活方式的影响。我们将从智能家居、自动驾驶汽车、医疗健康、教育等领域出发,分析AI技术如何改变人们的生活。同时,我们也将讨论AI技术可能带来的问题和挑战,以及如何应对这些问题。
|
消息中间件 架构师 Dubbo
免费下载!《Apache RocketMQ 源码解析》带你深入了解Apache RocketMQ
本书围绕Apache RocketMQ 源码进行多方面分析,包含RocketMQ ACL、RocketMQ 消息轨迹、RocketMQ 多副本之Leader 选主等,带你深入了解Apache RocketMQ。
26777 0
免费下载!《Apache RocketMQ 源码解析》带你深入了解Apache RocketMQ

热门文章

最新文章