【技术干货】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
用命令修改宝塔面板修改默认端口
用命令修改宝塔面板修改默认端口
|
自然语言处理 监控 语音技术
STM32 使用SYN6288语音模块
STM32 使用SYN6288语音模块
1924 0
|
存储 数据中心
什么是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四个等级。
19963 0
|
Java Maven
最快的 maven repository--阿里镜像仓库
国内速度超快的maven repository
162020 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月前
|
运维 Prometheus 监控
“服务器又宕了?”别急,智能运维教你如何未卜先知!
“服务器又宕了?”别急,智能运维教你如何未卜先知!
195 0
|
存储 搜索推荐 数据库
软件系统【标签tag功能】的两种数据库设计
软件系统中的标签功能可采用两种数据库设计。方案一,文章和Tag各一表,Tag信息存储在文章表内(`tags`和`tagids`字段),优点是模型简单,但查询效率低且易引发数据冗余和一致性问题。方案二,增加Tagmap表,用于存储标签-文章映射,利于索引查询和数据更新,适用于高效率需求,但结构更复杂。
992 0
软件系统【标签tag功能】的两种数据库设计
|
关系型数据库 MySQL 数据处理
TiDB Data Migration (DM):高效数据迁移的实战应用
【2月更文挑战第28天】随着企业对数据处理需求的不断增长,数据库迁移成为一项关键任务。TiDB Data Migration (DM) 作为一款专为TiDB设计的数据迁移工具,在实际应用中表现出色。本文将结合具体案例,详细介绍TiDB DM的应用场景、操作过程及最佳实践,帮助读者更好地理解和运用这一工具,实现高效的数据迁移。
|
Oracle 关系型数据库 数据库