【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

天盾风控 3.0 系统剖析及 618 总结

  • 2020-03-22
  • 本文字数:2213 字

    阅读完需:约 7 分钟

天盾风控3.0系统剖析及618总结

天盾风控系统简介

天盾是保障京东商城及金融主要业务安全运行的风控系统,已接入业务场景达 200 多个,主要接入场景类型如下:


  • 授信安全

  • 支付业务

  • 营销系统

  • 账户安全

  • 支持各种验证方式


1、天盾风控系统架构


接入的业务系统调用天盾时,天盾实时获取指标,指标通过指标加工系统生成,系统根据指标实时计算风险结果,返回上游系统。



2、天盾内部系统


  • 设备指纹


针对京东 PC 及 H5 页面采集设备信息报送天盾。


  • 食蚁兽系统


食蚁兽系统是风控实时统计平台,适用于各种流式计算,可进行高密集,多维度,可伸缩,配置灵活的复杂计算的统一平台。


  • 天盾引擎


天盾风控实时计算引擎,实时收集计算指标,并根据指标执行规则和模型,生成实时风险结果返回上游系统 。

天盾系统历史版本

1、天盾 1.0 系统


前身为京东白条风控,2015 年初上线,主要覆盖 10+种业务场景。使用 Groovy 语言,原子规则,规则包,试用设备指纹。


  • 规则决策关系


原子规则:原子规则是最小粒度的规则单位,是基本指标计算。



规则包(决策):不同原子规则的组合,根据规则包(决策)的命中情况返回上游结果。



  • 内部结构


上游系统调用天盾引擎后,引擎获取该业务的规则包,并解析规则,并行运行原子规则,最终获取结果返回收银台。



2、天盾 2.0 系统


  • 2.0 系统特点:

  • 规则改用 java 语言,2015 年底试运行,2016 年初上线

  • 加入维度概念,所有规则都被放在固定的维度中,所有决策围绕维度进行配置

  • 接入京东金融多种支付方式;多种不同订单业务;近 200 个业务场景

  • 全场景使用设备指纹

  • 加入食蚁兽

  • 入模型,模型与规则并行

  • 密码支付,指纹支付,无密支付,短信支付

  • 规则决策关系


2.0 系统添加了维度的概念,规则脚本是原子规则的组合,通过维度与得分来表示一个规则脚本。




决策是维度得分的组合,其实就是脚本的组合,根据决策的命中结果返回上游系统。



  • 天盾 2.0 内部结构



3、天盾 2.0 系统存在问题


  • 维度问题:系统中的维度未起到实质性作用,无谓消耗了系统运行时间并增加了配置复杂度

  • 原子规则配置混乱:针对重复性原子规则,不同场景参数要重新配置,参数配置问题查找困难,原子规则重用配置性比较差

  • 随着规则的不断增多,系统运行时间不断增加,难以达到业务的需求,急需设计新系统,提高系统的性能,降低系统响应时间

  • 2.0 系统性能问题


随着规则的不断增加,主要交易场景性能已经无法满足业务需求



  • 往年大促前的准备工作


和业务方一起梳理规则,主要方法如下:



为应对大促的到来,保证系统的响应时间,需减少一半以上规则。带来问题主要是规则的覆盖度更粗,影响的范围更大,增高了加验率和拦截率,误命中或漏命中的概率更大。

天盾 3.0 系统

1、天盾 3.0 系统


  • 针对原有天盾 2.0 系统配置复杂,规则数量迅速增加导致的系统性能过慢的问题,制作天盾 3.0 系统,解决性能问题和易用性问题

  • 2017 年 1 月开始开发,3 月底试运行,4 月下旬正式上线


2、设计前思考及实现


思考: 如何构建快捷高效的系统?


  • 流程上是否可简化?

  • 系统内部组件关系设计是否合理?

  • 可否减少系统内部的无谓损耗?

  • 系统是否简单易用?


从以上几点考虑着手设计实现天盾 3.0 系统


  • 天盾 2.0 系统流程上是否可以简化?



针对原子规则的获取可以提前计算并预热保存,针对获取决策结果可在单个原子规则执行完毕后提前获取,下图为 3.0 系统简化流程后的新流程:



  • 系统内部组件关系设计是否合理?


2.0 系统内部组件关系



在天盾 2.0 系统中,维度和维度得分未起到实质作用,只是增加了配置和运行复杂度,在 3.0 系统中去除了维度,重新定义原子规则,规则脚本,与决策的配置关系,下图为天盾 3.0 决策配置关系



使用脚本 id 代替维度及维度得分,决策只支持”与”的逻辑关系,上图中根据优先级获得的原子规则为 4,5,1,2,3。


另外从执行完所有原子规则后生成决策结果,变为根据原子规则结果实时生成决策结果。若原子规则 1,2,3,4,5 的取值如下图,则生成决策结果如下



根据决策优先级,决策 2 命中返回结果。


  • 可否减少系统内部的无谓消耗?



在 2.0 系统中,上面几个原子规则会并行执行,并对 jsfA,hbaseA,redisA,jsfB 重复调用多次,产生了无谓消耗,在 3.0 系统中,保证对重复性的查询只查一次



另外在 3.0 系统中,根据规则查询数据的情况,对简单内存计算同步执行,减少多线程执行的消耗,上图中 ruleE 没有查询远程数据,因此只会同步执行


  • 系统是否简单易用?


系统实现对客户要具有良好的使用体验和较小的学习成本。


3、3.0 系统上线后的实际性能情况


同场景同策略条件下天盾 3.0 性能比 2.0 提升近 200ms,如下:


升级前天盾 2.0 主要场景性能



升级后天盾 3.0 主要场景性能


天盾 3.0 系统 618 大促

1、618 大促前准备工作


  • 迁移天盾最主要场景到天盾 3.0 系统


天盾 3.0 上线后系统性能有显著的提升,为保证天盾最主要业务的性能,在已接入的 200 多个业务场景中,选择最重要的业务场景策略迁移至天盾 3.0 系统。


  • 对迁移场景后的天盾 3.0 进行压测

  • 对单一业务压测:


对天盾系统中调用量最高,规则数量及复杂度最高的场景分别进行压测:



  • 对以上业务进行同时组合压测:



以上压测均按最大策略数量进行,系统性能良好,按压测情况 618 无需再像往年大促需要下线规则。


2、618 期间系统实际运行情况



  • 618 零点主要支付场景 1 性能


策略数量是去年双 11 的 2.5 倍以上,性能依然有所提升




  • 618 零点主要支付场景 2 性能


策略数量是去年双 11 的 3 倍以上,性能依然有所提升




从 1.0 到 2.0,再到 3.0,天盾的版本更新见证了京东的飞速发展,相信随着业务进一步高速发展,天盾系统也将不断的迭代优化以满足需求,我们将继续努力,做好京东的保护盾。


2020-03-22 21:061323

评论

发布
暂无评论
发现更多内容

还在为项目初始化、依赖管理问题困扰?Dubbo Initializer 来了!

阿里巴巴云原生

阿里云 云原生 dubbo

企业移动数字化平台如何赋能企业管理升级?

WorkPlus

TiDB x CAPCOM | 为在线游戏提供灵活、可靠、可扩展的数据库服务

PingCAP

手势识别:解放双手,开启智能时代

来自四九城儿

数据采集在现代科技中的应用与挑战

来自四九城儿

PHP通过Modbus Tcp实时获取设备数据

北桥苏

物联网 PLC Modbus Tcp

没关系,前端还死不了

引迈信息

Vue 前端 低代码 JNPF

永远不该忘记!科技才是硬道理,手中没有剑,跟有剑不用,是两回事

加入高科技仿生人

人工智能 ChatGPT 文心一言 通义千问 科学技术

Mac打不开后缀名为txt文件,显示文本编码中文不适用

互联网搬砖工作者

大模型应用产品落地!提升理财师展业效果

中关村科金

全国标杆!3DCAT实时云渲染助力深圳移动5G+智慧校园建设

3DCAT实时渲染

虚拟现实 虚拟仿真 实时渲染云

phpOffice实现Excel表格导入的解耦方法

北桥苏

php PhpOffice/PhpSpreadsheet

解决使用宝塔安装的swoole扩展,运行项目出现的3个常见问题

北桥苏

php 游戏开发 swoole

详细版Jmeter随机参数的接口并发测试总结

北桥苏

Jmeter

关于Appium2.0

IT蜗壳-Tango

三周年连更

敏态开发在大兴机场数字化转型中的实践

明道云

以PHP门面模式实现简单的邮件发送

北桥苏

php 设计模式 门面模式

如何在uni-app中使用fingerprint2实现游客设备标识

北桥苏

JavaScript 前端 uniapp fingerprint

为什么企业选择局域网即时通讯软件?局域网即时通讯软件哪家好?

WorkPlus

mac屏幕分辨率调整用什么软件好呢?

真大的脸盆

Mac Mac 软件 屏幕分辨率调整

代码实现RabbitMQ死信队列的创建

北桥苏

php RabbitMQ 消息队列 死信队列

inBuilder低代码平台开发者分享课丨变量命名要义

inBuilder低代码平台

开发者 低代码 变量

如何实现文件共享,文件共享的设置方法

镭速

PHP如何通过rabbitMQ死信队列实现业务的延时/定时操作

北桥苏

php RabbitMQ

关于在 MySQL 排序中使用索引这件事!

江南一点雨

MySQL 数据库

关于使用ElascticSearch的两个小技巧

北桥苏

php elasticsearch

MySQL如何做如等级/成色等特殊顺序的排序

北桥苏

MySQL sql 排序算法

白鹭游戏引擎网络棋牌搭建步骤

北桥苏

php 游戏开发 白鹭引擎

浅谈一下ThinkPHP5.1实现事务嵌套的特性

北桥苏

php thinkphp 事务回滚

大数据如何助力营销(2)用户画像

MobTech袤博科技

websocket测试工具的环境搭建与使用

北桥苏

Jmeter webscoket

天盾风控3.0系统剖析及618总结_文化 & 方法_京东数字科技产业AI中心_InfoQ精选文章