#618复盘系列# | 交易风控系统架构演变

为应对高并发挑战,京东金融交易风控系统进行了全面优化,包括数据解耦、去关系型数据库、缓存化流水数据等,提升了系统响应速度与稳定性。

点击「京东金融技术说」可快速关注

---交易风控研发组的小伙伴们

「摘要」系统优化改造主要思路:

                1、去关系型数据库

                2、风控引擎业务模型升级优化

                3、其他,针对系统存在的其他具体痛点,实施具体改造……

背景介绍


金融系统网络,从业务层到交易层,需要若干系统间协同处理,相互支持,相互依赖,共同完成一笔看似简单的业务处理。风控在这其中是被若干系统同步调用的叶子节点,并发量高而且要同步实时完成逻辑复杂的风险判断,给出风险决策。

老交易风控完全依赖关系型数据库,响应速度慢,抗高并发能力差;内部系统间数据耦合严重,不易扩展改造;

不断增加的业务量,持续增长的规则数,越来越慢的响应速度……亟待系统升级改造,一年前我们开始了系统优化之路……

具体优化措施

一、数据层

1、内部系统流水数据解耦和

风控系统用到的数据大体分3类:实时业务流水数据;离线风险特征数据;配置类数据。其中实时业务流水数据是无边界且数据量极大的数据,也是我们优化的重点,这类数据从使用者的角度,主要分:

  • 实时决策系统(从现在往前n段时间即可)

  • 风控运行系统,供案件分析,人工审核用(需要历史全量数据)

  • 分析师风险分析用(虽然不需要历史全量数据,但是比实时系统需要更长的有效数据)

  • 其他非实时系统。

老系统数据架构:    

如上图所示,线上实时库数据与各类内部系统存在耦合关系:

  • Sars系统每天凌晨抽数抽到实时系统性能下降;

  • Mysql从库当大数据用了,定时炸弹随时引爆;

  • 实时决策强依赖Mysql,性能差待优化。

所以首先要做的就是:各内部系统数据解耦合。

解耦整体思路:对实时系统接入的所有流水数据做完数据清洗、预处理后,MQ异步方式发出来,其他内部系统来订阅,根据自己系统的特点选择不同的存储方案。

优化后数据架构:

数据解耦后,就可以放心大胆的进行实时系统的优化改造。目前改造的效果:新接入场景所有数据基本不需要再写入关系型数据库。

2、风控实时系统:去关系型数据库,全面缓存化

  • 流水数据

流水数据聚合统计指标是对mysql影响最大的,也是我们去关系型数据,全面缓存化最有难度的改造。

目前系统用到的方案有两种,二者相互补充,基本做到大场景所有聚合类统计全部缓存化。

方案一:清洗流水数据,缓存明细,解析聚合SQL转化为代码逻辑结合缓存数据实现聚合统计。

方案二:接入流式实时数据计算系统。

方案对比:

  • 离线风险数据

这类数据的使用特点:查询相对简单,没有复杂聚合统计。整体思路:最底层(无需业务层感知)实现关系型数据库与缓存的数据同步。

3、写库优化

Mysql目前架构是通过cds实现的主从读写分离,老业务接入的数据还是要写MySQL, 单点主库在高并发情况下出现写库瓶颈。

优化方案:

  • MQ异步降级(大部分聚合统计都已经切缓存,入库延迟对整体系统业务影响不大)。

  • 业务层合并、批量入库,减少IO。

优化后,618大促峰值,比去年双11量大的情况下,异步写库无任何积压,无任何入库延迟!

二、引擎Drools版本升级、JVM调优

引擎采用支持热部署的Drools,随着规则及业务量的增加,引擎java fullGc频繁,yongGc耗时过长,尝试调整各类参数都无法解决问题。

如下优化项完成后,java虚拟机各类GC表现正常,TP999优化效果非常明显:

  • Drools升级到最新7.0版本,session采用无状态替代原有有状态session。

  • Jvm升级到1.8,采用java8默认垃圾收集机制。

三、交易风控3.0– 风控引擎业务模型升级优化

2.0到3.0演进

1、引入规则包的概念

通过规则包前置条件,可以将规则划分到更小的规则包,使每条规则能够更精确的处理自己应该处理的业务请求,提高系统性能。

2、引入指标模板的概念(通过Rhythm模板引擎实现)

解决问题:

  • 多规则间,指标重复配置,复用性差。

  • 相同指标重复收集,浪费系统资源,影响系统效率。

  • 分析师可直接通过界面灵活配置规则。研发负责开发指标模板即可,一劳永逸,节约研发成本。

其他改造方案

1、网关代码重构:通过模板模式、工厂模式,将不同场景间的定制处理解耦和;拆分场景也便于系统性能监控。

2、自降级方案:系统一旦出现问题,系统可以自降级,及时给上游返回结果,流水数据会存下来,后面异步再跑引擎。

……

优化改造效果

1、从系统性能角度

在规则数量翻2倍,业务请求量翻3倍的情况下,全场景系统响应TP99降低到原来的1/5,性能提升显著。过去两个大促,全部顺利经受住考验……

2、从研发人力角度

随着交易风控3.0及洞察系统的上线及稳定运行,之前专门设立的都需要1个研发人力支持的:规则开发接口人、线上值班接口人,都已经取消。

后续...

目前系统还有优化空间,优化改造之路,我们将持续不断走下去……


京东金融技术说

   ▼▼▼     

原创·实用·技术·专业

不只一技之长

我有N技在手

你看,我写,共成长!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值