写点什么

天盾风控 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:061635

评论

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

熟练使用SSH客户端常用工具SecureCRT

xiezhr

Linux SSH securecrt SSH工具

资深大牛带你了解源码!面试题解析已整理成文档,已拿offer

欢喜学安卓

android 程序员 面试 移动开发

Day01:VBA和Python入门

披头

办公自动化 IT蜗壳教学 数据科学探究

种春草肥禾,织数字天下

脑极体

算法攻关 - 重上到下打印二叉树 (O(n))_offer32

小诚信驿站

刘晓成 小诚信驿站 28天写作 算法攻关 从上到下打印二叉树

Python 日期格式和时间以及当前时间和时间戳

HoneyMoose

万事开头难——人为推进效应

Justin

心理学 28天写作 游戏设计

《经济学人》2021年3月13日刊精彩文章导读及资源免费下载

wbliu85

你最喜欢的奥斯卡电影是哪部?

wbliu85

微服务学习笔记

lenka

3月日更

说说RPC架构

Kylin

读书笔记 3月日更 日常积累 RPC架构

进入大厂的简历应该是什么样子

我是程序员小贱

3月日更

【LeetCode】设计哈希集合Java题解

Albert

算法 LeetCode 28天写作 3月日更

代码审查:从 ArrayList 说线程安全

mzlogin

Java 代码审查

寻找被遗忘的勇气(十三)

Changing Lin

3月日更

浅谈数仓、数仓模型分层

白贺BaiHe

大数据 解决方案 通用设计模型 数仓

net.coobird.thumbnailator.tasks.UnsupportedFormatException: No suitable ImageReader found for source data.

wjchenge

阿里Java岗个人面经分享(技术三面+技术HR面):Java基础+Spring+JVM+并发编程+算法+缓存

Java架构之路

Java 程序员 架构 面试 编程语言

css高度坍塌与清除浮动

依旧廖凯

28天写作 3月日更

太简单了!看完这篇还能不会SpringCloud+Nginx高并发?

Java架构追梦

Java nginx 架构 面试 SpringCloud

如何实现可靠UDP传输

赖猫

计算机网络 udp TCP/IP

Elasticsearch 近实时搜索 Near Real-Time Search

escray

elastic 28天写作 死磕Elasticsearch 60天通过Elastic认证考试 3月日更

[转]html5设计原理

小江

Zookeeper.01 - 简介

insight

zookeeper 3月日更

MySQL主从复制机制

luojiahu

MySQL 主从复制

2021字节面经最新整理: 面试真经/思维导图/学习笔记!火遍全网

比伯

Java 编程 架构 面试 计算机

资深大牛带你了解源码!最详细的docker中安装并配置redis,实战解析

欢喜学安卓

android 程序员 面试 移动开发

谈产品和创业方向

Ryan Zheng

创业 产品

美团工作7年,精华全在这份学习笔记里了,已成功帮助多位朋友拿到5个大厂Offer

Java架构之路

Java 程序员 架构 面试 编程语言

滚雪球学 Python 之怎么玩转时间和日期库

梦想橡皮擦

28天写作 3月日更

对话微众和红枣:预言机是区块链提供可信数据的基础设施

CECBC

区块链

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