交易风控系统架构演变

阅读数:2 2020 年 3 月 22 日 21:06

交易风控系统架构演变

背景介绍

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

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

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

具体优化措施

一、数据层

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 个研发人力支持的:规则开发接口人、线上值班接口人,都已经取消。

后续…

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

评论

发布