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

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

image.png


苏宁金融集团年交易量已过万亿,日均资金流水几十亿,需要保证每一笔交易资金的安全;对这样业务需求极速变化的高并发金融资金系统进行重构,就犹如对发射出去的导弹进行二次加速,任何一个小失误,都可能导致上亿的资损,影响上亿的用户体验;那么在重构过程中,如何保证优雅就非常重要?首先需要确定我们的目标是什么?基于这个目标我们的困难是什么?解决方案是什么?怎么去实施?怎么去演进?怎么去验证?


image.png


基于这个愿景,就要满足两点:快和稳; 第一个是快:我们需要对业务敏捷、快速响应业务的变化;这个也是研发中心的核心使命,能对集团业务能够很好的支撑,甚至是驱动业务的发展;第2个是稳,性能要高(20万TPS、高可用),平时会考核MTTR,出现故障后多久能恢复,10秒、20秒还是一分钟?通过这个指标去牵动其它所有的工作的优化,避免指标太多,工作没有重点,不能聚焦;比如定10个指标,每个指标权重10%,看似面面俱到,其实没有重点;但是系统指标有很多,有成功率,耗时,异常率,各个硬件的使用率等等,作为负责人要找到北极星指标;我们的北极星指标就是MTTR;以及这么多系统能否实现弹性治理


image.png


基于目标,然后识别关键问题,那我们的关键问题有四类:


1、交付速度:基于标准的复用,并行、分布研发;2、高可用:需要分析故障点,建设DB单点/热点防护、自动化运维、服务自愈、应用级灾备能力3、可伸缩:从应用到IDC、服务器、网络,做到全网伸缩;4、低成本:不仅要节流,还要开源,重点是公司盈利和控制资损,通过技术对业务驱动力产生的正向价值,产品运营效果评估,这个也是对团队负责人的一个要求:要善于做技术产品化和技术品牌的运营;


image.png


高可用的重点是故障识别与应对,即对故障源的实时感知和可视化的治理。故障源来源:按照我们的服务模型分三方面:提供的服务、服务本身、依赖服务。提供的服务:故障来源在于请求,比较经常出故障的是:重复请求、并发请求、超量请求。针对每一个请求我们用不同的策略进行处理。外部服务:首先检测通信是否正常,通信正常后服务是否可用,服务可用后响应是否超时,这些都没问题后功能契约SLA是否满足,这样就形成了一个体系化的处理方法,就不会遗漏,也便于团队的知识传承(不论是代码结构设计,还是团队设计思想的统一,都是比较好的)


image.png


对外提供的服务是吞吐量、单资源存储量的上限、响应时间;内部服务:关注DB、数据库总连接数、单数据库每秒事务数、慢SQL;依赖服务:银行实时清算能力、关键服务访问量等;这个是个可伸缩的框架,接下来我们详讲一些关键系统的可伸缩设计,具体是怎么做到的,交易系统、支付引擎系统和账务核心,如何实现可伸缩的。


image.png


首先是交易系统的设计,大维度上,将B、C端拆封开,然后进行读写分离,再对写进行分库分表。这里要特别讲一下分库分表中间件有两个特别的功能:灰度支持和影子库表支持。灰度支持即用来对不同用户,对不同场景,不同功能进行灰度,影子库表主要便于生产压测使用,后面在生产压测部分会详讲;


image.png


支付引擎即支付服务的分库分表策略,按照用户维度进行拆分。这里面有个核心设计,我们设计了一个逻辑数据源,而不是物理数据源,便于迁库,减少DBA的运营成本。


相关文章
|
4月前
|
C语言 C++ Windows
VC++ 2010学习版(64bit)安装与教程(Windows版,含解压+管理员运行+自定义路径)
Microsoft Visual C++ 2010 Express(学习版)是全国计算机二级C/C++考试指定开发环境,专为初学者设计:语法高亮、实时错误提示、界面简洁。含64位安装包、详细图文安装指南及正版注册密钥,助你快速上手编程学习。(239字)
4534 0
|
前端开发 Java API
酒店管理系统基于 JavaFX Spring Boot 和 React 经典项目重构实操
本文介绍了基于现代技术栈的酒店管理系统开发方案,整合了JavaFX、Spring Boot和React三大技术框架。系统采用前后端分离架构,JavaFX构建桌面客户端,React开发Web管理界面,Spring Boot提供RESTful API后端服务。核心功能模块包括客房管理和客户预订流程,文中提供了JavaFX实现的客房管理界面代码示例和React开发的预订组件代码,展示了如何实现客房信息展示、添加修改操作以及在线预订功能。
730 0
|
12月前
|
前端开发 Java API
基于 Spring Boot 3 与 React 的 Java 学生信息管理系统从入门到精通实操指南
本项目基于Spring Boot 3与React 18构建学生信息管理系统,涵盖前后端开发、容器化部署及测试监控,提供完整实操指南与源码,助你掌握Java全栈开发技能。
612 0
|
架构师 开发工具 git
项目去除git版本控制 去除版本控制
文章提供了去除本地项目Git版本控制的步骤,包括删除`.git`文件夹和`.idea`目录下的`vcs.xml`文件。
项目去除git版本控制 去除版本控制
|
安全 Java 数据处理
Java Consumer 接口详解
在Java编程中,有时需要对某个对象进行操作或者处理,而这个操作可能是非常灵活的。Java 8引入了函数式编程的特性,其中的一个重要接口就是Consumer接口。本文将详细介绍Consumer接口,包括它的定义、用法以及示例。
938 0
|
存储 负载均衡 算法
从海量数据中挖出TOP100热词,这个算法太绝了!
小米,一位热爱技术的29岁程序员,今天探讨如何在海量搜索词汇中找出最热的TOP100词汇。面对包含数百亿词汇的大文件,小米介绍了一种实用的方法:通过哈希分流将大文件拆分成小文件,接着利用哈希表统计词频,并运用小根堆选出每个小文件的TOP100词汇。最后通过外排序或再次使用小根堆选出全局TOP100。此外还提出了并行处理、内存优化及数据压缩等优化手段。这一系列技巧能有效应对大数据处理挑战。
488 9
|
前端开发 JavaScript
React Tailwind CSS
10月更文挑战第12天
581 1
|
机器学习/深度学习 自然语言处理 API
10-22|处理脏话其他方法
10-22|处理脏话其他方法
|
开发工具 git
idea的git reset current branch to here操作详解
idea的git reset current branch to here操作详解
2522 1
|
Java fastjson Apache
Spring Boot+Gradle+ MyBatisPlus3.x搭建企业级的后台分离框架
Spring Boot+Gradle+ MyBatisPlus3.x搭建企业级的后台分离框架
719 1