在线支付之风控系统架构选型

风控系统介绍

伴随着互联网的发展,游戏、商贸、慈善、博彩、餐饮等各行各业都开始触网。“天下熙熙,皆为利来;天下攘攘,皆为利往”,种类繁多的网络活动直接或间接的都与钱相关,传统的支付不能满足人们快节奏的互联网生活,电子支付应运而生,但电子支付给人们带来方便快捷的同时也给参与支付的各方带来了风险,账号盗用、虚假交易、金融欺诈等事件层出不穷。支付风险自古就存在,在互联网繁荣的今天只是多了些新花样,风控系统就是通过监控交易、渠道、产品、用户,对相关数据进行实时、准实时、定时的分析、挖掘,从而识别交易风险,尽早发现欺诈,采取各种措施降低交易损失。

风控系统功能性需求

  • 实时监控——针对各类支付业务交易风险的事中监测与控制。
  • 同步反馈——接受并处理各支付业务平台的支付交易信息请求,并由风控系统将处理结果实时返回业务系统。
  • 联动控制——对风控系统识别出的风险信息,进行系统自动化(通过人工预置策略实现)交易风险处理。
  • 持续迭代——交易风险特征识别方式可以通过系统自动整理、人工设定参数、外部资源共享等方式进行持续动态更新。
  • 统计分析——对于风控系统中存在的各类信息和数据,有关人员可以通过组合查询和查阅报告等方式,对系统运行情况、交易风险情况、岗位绩效情况等进行监督。

风控系统非功能性需求

  • 灵活性——风控规则需要经常新增以及调整,如何降低风控规则新增、修改的成本是风控系统需要解决的一个问题。此外,风控系统需要能够与不同业务系统进行集成,需要和业务系统保持相对的独立,以利于集成。
  • 性能——风控系统响应时间需要小于100ms同时能够有很大的吞吐量,风控系统降低风险的同时不能影响用户体验,否则就本末倒置了。
  • 准确性——风控系统根据风控规则会自动冻交易相关资源等,如果准确率过低会引起大面积投诉,损害公司信誉、公众形象使用失去信心,给公司带来巨大的损失,所以风控系统识别风险的准确率必需要有一个下限,同时要注意风险识别的准确率和覆盖率是相互影响的两者要达到一个可以接受的平衡。

风控系统的误区

风控系统的目的是在不影响正常业务的同时把交易风险降低到合理的水平,风控系统并不能消灭风险,所以在建设风控系统时不可盲目追求数据的准确性以及一致性。

风控系统架构

风控系统主要由以下几个部分构成:风控实时引擎、风控准实时引擎、风控定时引擎、惩罚中心、规则中心等,下面分别进行介绍。

风控实时引擎

支付系统会把当前交易部分信息同步传递给风控实时引擎以获取当前交易的风险评分和处理建议。风险评分总分为100,分数越高风险越大,-1代表风控系统不能对当前交易进行评估风险,一般是指风控系统没能获取到当前交易正面或负面的信息。风控实时引擎最大的挑战是性能,实时引擎对支付交易进行风险评估必须在100ms内完成,否则会影响用户体验。

风控实时引擎依据公司积累的风控数据以及第三方风控数据对进行风险评估。公司风控数据主要来自风控准实时引擎和风控定时引擎。

风控实时引擎建立在规则引擎Drools基础上,目的是为了提高系统的灵活性和可配置性。

下图是风控报告的域模型:

规则引擎优点

风控系统中风控规则变动比较频繁,其它部分相对稳定,通过引入规则引擎可以解耦系统与规则、提高复杂逻辑的可维护性、提高规则的可读性以及可理解性。

风控准实时引擎

交易欺诈行为具备一定的隐蔽性,不是所有风险都能实时的作出正确的评估,某些情况下需要通过对最近一段时间的数据进行分析才能确定欺诈行为,例如:对最近一个月的用户行为进行分析。风控准实时引擎从消息服务器获取交易数据,对交易数据流作异步分析,分析的结果通过风控服务存入风控数据库,供实时风控引擎评估交易风险。风控准实时引擎从发现异常到风控数据生效的时间在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集群上。

惩罚中心

惩罚中心负责积累风控数据并提供奖励和惩罚的相关服务,风控实时引擎、风控准实时引擎、风控定时引擎会调用惩罚中心的服务查询或保存风控数据。惩罚中心针对不同维度提供多种惩罚策略以及多种奖励策略。风控实时引擎在识别交易风险时根据规则综合考虑奖励以及惩罚相关数据以提高风险识别准确率。

下图是处罚中心域模型:

风控系统的建设往往是分阶段实施的,一般分为以下三个阶段:

第一阶段:核心任务:

  • 搭建基础架构
  • 网上应用接入
  • 手机应用接入
  • 建立起有效的监控团队和工作机制

第二阶段:提升性任务:

  • 交易监控能力 
  • 风控模型提炼 
  • 监控团队能力和工作机制 

第三阶段:后续发展:

  • 持续优化
  • 新应用接入

团队技能是逐步积累的,对风控系统以及风控模型的理解也需要时日,如果初始建设阶段求大求全会使建设工作增加不确定性,一旦出现技术或业务方向上的偏差会给公司带来巨大的损失。循序渐进逐步建设,在前一阶段的工作产生效益时再去进行下一阶段的工作阻力会小很多,任何时候保持团队对项目的控制力都是相当重要的,这是我们在建设风控系统的过程中的一点感悟。

作者简介

康大强,拥有14年企业与互联网开发、设计、架构经验;历任金蝶软件、芒果网、华为、OPPO架构师;目前专注于文法分析、工作流、高并发系统、大数据以及复杂业务分析处理。

【ArchSummit深圳2016】15大热门专题,超过50位国内外技术大咖讲师——Uber工程经理为您讲述追踪和查询系统的演进,Twitter Tech Lead为您带来机器学习平台的设计心得,更有 LinkedIn技术专家何奇倾情分享!国内外技术相得益彰,ArchSummit为您打开一段不一样的架构之旅。8折购票最后一周,详情请点击
阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Spring Boot是一个开源的Java开发框架,主要用于快速构建基于Spring的应用程序。在线教育系统架构是指构建一个可以在线提供教育课程的系统的设计和组织方式。 Spring Boot的特点是简化了Spring的配置和部署过程,提供了强大的开发工具和约定大于配置的原则,使得开发人员可以更加专注于业务逻辑的实现。在线教育系统架构基于Spring Boot可以采用以下的设计: 1. 前端展示层:可以使用HTML、CSS、JavaScript等前端技术来实现用户界面。可以使用开发框架如Vue.js或React来简化前端开发。前端通过HTTP协议与后端进行通信,接收用户请求并展示响应的内容。 2. 后端服务层:使用Spring Boot构建后端服务,包括业务逻辑的实现、数据库访问,以及与前端的数据交互。可以使用Spring MVC来处理用户请求,使用Spring Data JPA来访问数据库。 3. 数据库层:在线教育系统需要存储课程信息、用户信息等数据,可以择关系数据库如MySQL或PostgreSQL来存储数据。 4. 媒体资源存储和管理层:在线教育系统可能需要存储和管理教学视频、课件等媒体资源,可以使用云存储服务如阿里云OSS或腾讯云COS来存储和管理这些资源。 5. 安全认证和权限管理层:在线教育系统需要考虑用户身份认证和权限管理,可以使用Spring Security来处理用户认证和授权。 6. 日志监控层:为了保证系统的稳定性和运行状态可控,可以使用日志框架如Logback来记录系统运行日志,使用监控工具如Prometheus和Grafana来监控系统的运行状态。 综上所述,Spring Boot可以作为在线教育系统的开发框架来简化开发流程,提高开发效率。通过合理的架构设计,可以实现一个功能完善、稳定可靠的在线教育系统。 ### 回答2: Spring Boot是一种用于开发Java应用程序的开源框架,能够帮助开发人员快速搭建和部署应用程序。在线教育系统是一种基于互联网的教育服务,通过在线平台提供教学和学习资源。下面是一个简单的Spring Boot在线教育系统架构的说明。 Spring Boot在线教育系统的核心组件包括前端用户界面、后端服务器和数据库。前端用户界面通常由Web页面或移动应用程序构成,用于展示课程信息、教学视频和学习资料。后端服务器负责处理用户请求和逻辑处理,提供相应的数据资源。数据库用于存储用户信息、课程信息和学习记录等数据。 在Spring Boot架构中,可以使用MVC(Model-View-Controller)模式来处理用户界面和后端逻辑。Spring MVC提供了一个强大的框架,用于处理HTTP请求和响应。用户界面通过web浏览器发送请求到后端服务器,服务器根据请求路径和参数进行逻辑处理,并返回相应的数据或页面。 为了提供高可用性和扩展性,可以将Spring Boot应用程序部署在分布式的服务器集群上。可以使用Spring Cloud框架来实现微服务架构,将系统拆分为多个独立的服务。每个服务负责处理特定的功能,通过服务间的REST API进行通信。通过这种方式,系统可以更好地应对高并发和大规模用户量的需求。 此外,可以使用Spring Security来保护在线教育系统的安全性。Spring Security提供了认证和授权的机制,可以对用户进行身份验证,保护敏感数据和功能不被未授权用户访问。 总之,Spring Boot提供了一个高效、可靠的开发框架,可以帮助开发人员快速搭建和部署在线教育系统。通过合理的架构设计和使用Spring相关组件,可以实现系统的高可用性、可扩展性和安全性。 ### 回答3: Spring Boot 是一种轻量级的Java开发框架,用于构建独立的、可扩展的、高效的应用程序。在线教育系统是一个基于互联网的教育平台,为学生和教师提供在线学习和教育资源。 Spring Boot 在线教育系统的架构可以分为前端、后端和数据库三个部分。 前端部分使用HTML、CSS和JavaScript等技术来实现用户界面。可以使用前端框架如Vue.js或React.js来构建交互式的界面,提供用户友好的体验。 后端部分使用Spring Boot来实现服务器端的业务逻辑和数据处理。Spring Boot提供了强大的依赖注入、ORM(对象关系映射)和数据库访问等功能,可以方便地处理业务逻辑和数据交互。同时,Spring Boot还可以与其他框架如Spring MVC和Spring Security等无缝集成,提供更完整的功能。 在后端中,可以使用一个或多个控制器来处理用户请求,并调用相应的服务层来逻辑处理。服务层负责处理业务逻辑,如用户注册、登录、课程管理等。服务层可以调用持久层(数据访问层)来实现对数据库的增删改查操作,如学生信息、课程信息等数据。 数据库部分使用关系数据库如MySQL或PostgreSQL来存储和管理数据。可以使用MySQL Workbench等工具来进行数据库设计和管理。 整体架构中,前端向后端发送请求,后端通过控制器和服务层来处理请求,并通过数据库操作来返回数据。前端接收数据并在界面上显示给用户。 该架构基于Spring Boot的特性,具有快速开发、高效、易维护和可扩展等优势。同时,可以通过使用缓存、负载均衡、分布式部署等技术来提高系统的性能和可靠性。 综上所述,Spring Boot在线教育系统的架构涵盖了前端、后端和数据库三个部分,通过合理的分层和技术,实现了一个功能完善、高效稳定的在线教育平台。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值