引言
通过前一篇文章业务篇,大家已经对风控业务和团队构成有了初步的了解。这一篇文章,我们重点从技术角度来介绍风控平台整体的系统架构。系统模块的划分以及每个模块的职责,模块与模块之间如何交互。以及我们在技术选型过程中的一些思考。
一、系统调研
业务调研
风控平台需要支持电商领域多个业务场景,涵盖交易、退款、登录、注册、商户入网、各类营销、团购、供应链审核、商品上架、素材上传、数据导出、反爬虫等各类场景。
平台运营需求
支持每个业务线可以独立运营。风控策略的部署需要立即生效,策略编辑界面需要对非技术人员友好一些。学习成本不能太高。要有数据报表和风险预警功能帮助他们发生风险并及时接入处理,以提升运营团队的工作效率。
风控运营需求
风控审核记录需要支持不同维度多条件的查询和导出。特殊业务场景需要有人工审核系统,对日常生成的风险案件进行审核,并可以对相关商户进行调单和相关处置动作。
策略分析师需求
支持离线策略部署及复杂风险指标计算,T+1跑离线策略。并更新风险画像、知识图谱相关数据。风险画像需要支持动态打标、自定义人群、点查以及圈人等功能。
风控审核需求
支持对商户上传的文本和媒体类的素材进行机器初审和人工复审,不符合规范的内容可以封禁。
技术调研
审核接口性能
系统需要支持整个电商平台,日常时间至少10000+QPS的同步审核请求,3 ~ 5倍的弹性空间。特殊时间段(促销活动、节假日、司庆、双11等)视实际情况可以快速提升系统吞吐量。
响应时间上,不同业务线的要求不同,控制在100~800毫秒。需要有熔断限流措施保证在极端情况下,正常业务不受影响。
技术对接成本
技术对接的沟通成本和学习成本不能太高。接口的设计尽量简洁,最小化的控制出参入参的数量,接口迭代版本不能太频繁。技术栈需要适配现有的业务系统。
二、方案落地
基于前期做好的系统调研,我们大概了解了各个业务方的需求以及相关技术团队对风控审核接口的要求。于是我们制定了如下的技术方案。
应用工程
下面表格里所列的是风控平台相关的应用。其中风控网关、模型运行引擎、风险特征平台、规则引擎这4个应用,功能基本一致,实时审核和离线审核独立部署。
实时审核场景是由上游业务方发起,他的特征是流量相对分散、审核结果会直接影响实际业务走向。所以对系统吞吐量和响应时间有着较高的要求。
离线审核场景是由离线任务系统发起,他的特征是流量相对集中、审核结果不会影响实际业务走向。所以对响应时间没有特别高的要求。
基于两个审核场景对系统的要求不同,我们决定独立部署。这样可以保证实时审核和离线审核两条链路独享各自的系统资源,互不干扰。资源配置规格仅供参考,大家可以根据实际业务情况申请。
序号 | 应用ID | 应用名称 | POD配置 | HPA策略 | POD服务名称 |
---|---|---|---|---|---|
1 | offline-task-exec-server | 离线任务调度系统 | 4C8G | 4 ~ 8 | ${env}-offline-task-exec-server |
2 | offline-task-manage-server | 离线任务管理系统 | 2C4G | 2 ~ 2 | ${env}-offline-task-manage-server |
3 | risk-gateway-server-offline | 风控网关(离线) | 4C8G | 4 ~ 8 | ${env}-risk-gateway-server-offline |
4 | engine-exec-server-offline | 模型运行引擎(离线) | 4C8G | 4 ~ 8 | ${env}-engine-exec-server-offline |
5 | data-center-server-offline | 风险特征平台(离线) | 8C16G | 8 ~ 12 | ${env}-data-center-server-offline |
6 | engine-manage-server-offline | 规则引擎(离线) | 2C4G | 2 ~ 2 | ${env}-engine-manage-server-offline |
7 | risk-gateway-server-online | 风控网关(实时) | 4C8G | 6 ~ 12 | ${env}-risk-gateway-server-online |
8 | engine-exec-server-online | 模型运行引擎(实时) | 4C8G | 6 ~ 12 | ${env}-engine-exec-server-online |
9 | data-center-server-online | 风险特征平台(实时) | 8C16G | 10 ~ 20 | ${env}-data-center-server-online |
10 | engine-manage-server-online | 规则引擎(实时) | 2C4G | 2 ~ 2 | ${env}-engine-manage-server-online |
11 | risk-case-audit-server | 风险案件审核系统 | 2C4G | 2 ~ 2 | ${env}-risk-case-audit-server |
调用链路如下图。
技术选型
类型 | 名称 | 配置 |
---|---|---|
编程语言 | JAVA | |
动态脚本 | GROOVY | |
RDS | MYSQL | 8C16G |
NOSQL | REDIS | 集群版-5分片 |
NOSQL | MONGO | 集群版-4C8G |
注册中心 | NACOS | - |
配置中心 | NACOS | - |
微服务 | SPRING CLOUD | - |
分布式任务 | XXLJOB | - |
消息队列 | ROCKET MQ | - |
应用监控 | SKYWALKING | - |
数据库监控 | GRAFANA | - |