干货 | 在线支付之风控系统架构选型
一、风险的构成和分类
在线支付的风险主要如下:
一个完整的支付风控体系应该包括风险识别、风险分析、风险控制、风险治理、案件管理等模块,风险控制可区分为事前、事中、事后控制,利用实时计算技术,加上特定的风险识别规则或模型,可很好的做到风险的事前和事中控制。
风控系统主要由以下几个部分构成:风控实时引擎、风控准实时引擎、风控定时引擎、惩罚中心、规则中心等,下面分别进行介绍。
二、风控实时引擎系统建设
支付系统会把当前交易部分信息同步传递给风控实时引擎以获取当前交易的风险评分和处理建议。
实现实时风控的技术难点,一是要能够对实时的交易事件做连续处理,基于设定好的判别模型或业务规则进行计算,二是能够有能力来承载大并发的压力,目前基于Storm的流式处理,统计计算、持续计算、实时消息处理提供了这种可能性,利用kafka+Storm+Hbase的结合,能够很好解决移动支付实时风控中的风险识别问题,同时因为采用的是分布式环境,因此对于并发压力有很好的支撑作用。
Kafka:用来配合Storm,做交易事件的接收。
Storm:用来结合业务策略,对连续输入的交易事件进行规则的判别。
Hbase:用来做规制库、知识库、风险数据的存储,需要满足大量的读写要求。
最终形成的数据流图如下:
基于Storm的计算可能无法满足特别复杂的规则,后期还可以在框架中引入Spark技术,定制更复杂的风险模型算法,从而形成更全面、立体的风控体系。
三、风控准实时引擎
交易欺诈行为具备一定的隐蔽性,不是所有风险都能实时的作出正确的评估,某些情况下需要通过对最近一段时间的数据进行分析才能确定欺诈行为,例如:对最近一个月的用户行为进行分析。风控准实时引擎从消息服务器获取交易数据,对交易数据流作异步分析,分析的结果通过风控服务存入风控数据库,供实时风控引擎评估交易风险。风控准实时引擎从发现异常到风控数据生效的时间在100ms以内,可以有效防止交易风险扩大。
风控系统初始建设时中风控准实时引擎往往是通过消息监听器消费交易消息,把中间数据存储在Redis缓存上,对数据进行多维度分析。由于需要针对每项指标开发相应程序,风控规则开发成本较高、上线周期长,为了解决这个问题以及提高系统的灵活性、可配置性,在风控系统2.0版本引入了CEP引擎Esper以及规则引擎Drools。
风控准实时引擎需要使用到Drools、Esper、Esper IO AMQP、Esper Extension、Spring等组件,其中Esper Extension是我们对Esper的扩展,主要用来提高Esper可配置性以及丰富Esper IO功能以及弥补Esper缺陷。
下图是风控准实时引擎架构:
四、什么是CEP
事件驱动是一种监测、分析信息流从中得出推论的方法。CEP(Complex Event Processing)也就是复杂事件驱动,是结合多种数据源的数据对信息流进行监测、分析从推理出一些复杂的事件或模式,CEP的目的是识别出一些有意义的事件,例如:机遇、威胁,并且尽可能快的作出反应。
CEP引擎已经被一些公司开发出来,用来满足那些需要分析事件并对其作出反应的的需求,下面是一些典型的应用示例:
业务流程管理和自动化(流程监控、商业活动监控、报告异常)
金融(自动化交易、欺诈检测、风险管理)
网络以及应用监控(入侵检测、SLA监测)
传感器网络应用(读取RFID、生产线调度与控制)
CEP技术选型
下面列出一些CEP产品,大家可以根据自己的情况选用。
开源 CEP产品:
JBoss Drools Fusion
EsperTech Esper
Triceps
商业CEP产品
EsperTech Esper Enterprise Edition
EsperTech EsperHA
IBM Operational Decision Manager (IBM ODM)
Oracle Stream Explorer platform
TIBCO BusinessEvents
TIBCO StreamBase
五、Esper优点
数据窗口机制完善
Esper目前支持大约30种数据窗口,深入理解窗口是应用Esper的关键,下面表格列出常用的几种:
Time Window:
Length Window:
Time Batch Window:
EPL语句的语法与SQL相似降低学习成本
事件处理语言(EPL)是SQL标准语言并做了扩展,提供了SELECT、 FROM、 WHERE、 GROUP BY、HAVING和 ORDER BY等子句。
使用方式灵活
Esper提供了丰富的API,可以独立部署也可以集成进任何应用。
支持多种获取结果方式
Esper缺点
Esper统计分析的中间数据全部是存储在内存中,不能跨服务器,只能单机部署,内存有限,存在单点故障,由于全内存操作,系统重启后中间数据就会丢失无法恢复。Esper的这些缺点风控系统都可以接受,对风控系统没有实质的影响。
六、风控实时引擎
某些非常隐蔽的交易欺诈通过实时或准实时风控引擎很难发现,这些风险需要通过分析用户跨月或跨年的数据才能识别。定时风控引擎主要用来定时对支付相关等数据进行深度挖掘,建立对应的风控模型,典型应用场景是用户的信用等级模型以及用户行为分析。
定时风控引擎构建在Hadoop集群上。
惩罚中心
惩罚中心负责积累风控数据并提供奖励和惩罚的相关服务,风控实时引擎、风控准实时引擎、风控定时引擎会调用惩罚中心的服务查询或保存风控数据。惩罚中心针对不同维度提供多种惩罚策略以及多种奖励策略。风控实时引擎在识别交易风险时根据规则综合考虑奖励以及惩罚相关数据以提高风险识别准确率。
下图是处罚中心域模型
风控系统的建设往往是分阶段实施的,一般分为以下三个阶段:
第一阶段:核心任务
搭建基础架构
网上应用接入
手机应用接入
建立起有效的监控团队和工作机制
第二阶段:提升性任务
交易监控能力
风控模型提炼
监控团队能力和工作机制
第三阶段:后续发展
持续优化
新应用接入
团队技能是逐步积累的,对风控系统以及风控模型的理解也需要时日,如果初始建设阶段求大求全会使建设工作增加不确定性,一旦出现技术或业务方向上的偏差会给公司带来巨大的损失。循序渐进逐步建设,在前一阶段的工作产生效益时再去进行下一阶段的工作阻力会小很多,任何时候保持团队对项目的控制力都是相当重要的,这是我们在建设风控系统的过程中的一点感悟。
来源|InfoQ
作者|康大强
更多精彩,戳这里: