根据第三方机构预统计,自2016年-2019年,我国零售信贷规模维持20%以上的高复合增长率,2017年中国零售信贷规模达到27万亿,到2019年,总规模超过37万亿。近年来互联网金融蓬勃发展,在借贷、保险、股权等领域涌现出一大批互联网与金融场景相结合的创新产品。同时作为互联网金融的子领域消费金融领域,在国家消费升级战略下,各大平台推出了如花呗、借呗,微粒贷等众多服务。
互联网金融的架构有别于传统金融系统,互联网金融产品依托于互联网的众多技术特性,主要包括三大主要方面:
- 互联网高并发软件平台化特性
- 基于大数据的场景的智能化风控体系
- 基于高弹性的云计算基础设施建设
在互联网浪潮的背景下,传统银行、金融行业也有着转型的诉求,并在股权、借贷、保险等方面都需要创新。有些是业务从线下转线上,有些是金融零售化转型。随着互联网金融业务的爆发增长,建设一个高并发、高可用、高弹性的互金平台是每个金融从业的IT技术人员面临的挑战。
一、高并发架构面临的挑战在传统金融的领域里,架构的特点往往是保守的,除了技术相对陈旧以外,更多是要求系统更高的稳定性,低风险,低维护等。
银行、金融机构在面对互联网化的高速业务发展,往往会陷入技术与基础建设的泥潭,一方面在软件平台建设时银行、金融传统系统的高可用、低风险、低风险特性与互联网产品的高并发、高性能、高扩展/高弹性存在一定的冲突,另一方面在基础设施建设方面,相比互联网的云计算平台,存在天然的先天不足。所以,我们的架构设计,需要结合两者的特性,综合考虑,既要兼顾传统金融行业的特性,又要承载互联网高并发高弹性等特性,这样使我们面临到巨大的挑战:
- 对于架构师来说,前期的技术架构设计和领域规划,需要同时具备对传统金融领域知识和互联网高并发架构的双重能力;
- 对于研发、测试、运维人员来说,系统的复杂度成倍的增长,微服务拆分后,系统研发、测试、运维难度大大增加;
- 当出现线上问题时,排查问题和分析错误,也变得复杂,需要依赖庞大的监控体系和log分析工具。
如何在构建一个高并发互联网架构的基础上,同时兼顾金融行业的特性,让金融IT技术从业者面临着巨大的挑战。而且金融行业的高安全、银保监会监管合规方面的要求,也让高并发的互联网架构在实施起来步履蹒跚。
二、高并发场景下的安全设计金融行业的安全性要求,是架构设计时不可忽视的问题。总的来说,包括以下四个方面:
1)数据安全:
- 数据不丢失
- 数据加密
- 数据准确性
2)物理安全:
- 物理机的隔离规划
- 重要的交易服务与普通服务的网络隔离
3)网络安全
- 网络加密
- 防火墙的建设等
4)业务安全
- 反欺诈
- 防恶意操作
- 交易过程防篡改
在互联网金融的高并发场景下,涉及到资金方面安全的问题尤为重要。服务端在做并发编程时,往往需要考虑到竞争条件的情况。在多个并发线程同时访问同一资源时,由于对请求的处理不是原子性的,无法预测调度的顺序,就可能由于时间序列上的冲突而造成对共享资源的操作混乱。
2.2 条件竞争安全漏洞危害通过高并发操作触及程序处理临界区,绕过程序线性执行顺序,使原有的逻辑限制失效。经典场景有:
- 超额取款,提现
- 重复兑换积分
- 多次领取优惠券
- 使用相同优惠券、积分多次下单等
条件竞争安全漏洞解决方案
- 在程序处理时使用时序队列
- 在更新数据库数据时使用数据库锁(乐观锁)
- 针对数据库使用分布式锁
合规、监管要求在对互联网金融项目建设时,根据金融行业特性,必须在建设范围进行法律、法规的研讨和设计,确定要关注及合规部门银保监会的监控要求限制。
对于新的业务流程或不确定的业务规则,必须通过银行合规、法律部门等会签通过,确保系统遵循合规条件。
法律法规的参考相关地址:
- 中国政府政策网页http://www.gov.cn/zhengce/zhengcewenjianku/index.htm
- 中华人民共和国公安部政策https://www.mps.gov.cn/n6557558/index.html
- 中华人民共和国国家知识产权局法规http://www.sipo.gov.cn/zcfg/index.htm
-
中国银行保险监督管理委员会http://www.cbirc.gov.cn/cn/view/pages/index/index.html
在构建一个高并发金融架构时,我们往往会考虑很多因素,从系统平台建设的角度来讲,会优先关注以下重点指标的建设:
- 高可用
- 高并发
- 高性能
- 高弹性
对于互联网金融架构系统来说,涉及到以资金交易为核心的业务领域,最重要的指标是高可用。高可用HA(High Availability)是分布式架构设计中必须考虑的因素之一,它通常的是指,通过设计减少系统不能提供服务的时间。
高可用的指标 我们通常会形容高可用如:
- 不能“挂”
- 可用性99.99%四个九
- 一年故障时长0.876小时
- 平均响应时间
关注打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?