现如今,互联网平台的风险也与日俱增,尤其是带有金融性质的平台,往往会受到一些互联网黑产灰产的关注。成熟的互联网系统,往往都会拥有风险控制系统,对一些风险行为和用户进行监控,预防风险,提前止损。
然而,不同的业务线中各做各的风控系统,会增加代码维护成本,一个统一的风控管理平台势在必行。同时,风控系统的核心,往往是一个规则引擎,通过对风险行为建模后配置规则来实现。Radar,就是这样一个易用的风控引擎。
简介
Radar,是 freshday 在 Gitee 上开源的实时风控引擎与自定义规则引擎,仓库位于 https://gitee.com/freshday/radar,目前版本为 v1.0.8。
Radar 基于java语言,是使用 Spring boot MongoDB groovy Es 等框架搭建的轻量级实时风控引擎,适用于反欺诈应用场景,极简的配置,真正做到了开箱即用。通过本项目能快速了解风险的定义,进而量化风险 ,最后达到集中管理风险的目的。
使用
Radar功能丰富,包括:
- 实时风控,特殊场景可以做到100ms内响应
- 可视化规则编辑器,丰富的运算符、计算规则灵活
- 支持中文,易用性更强
- 自定义规则引擎,更加灵活,支持复杂多变的场景
- 插件化的设计,快速接入其它数据能力平台
- NoSQL,易扩展,高性能
- 配置简单,开箱即用
Radar采用前后端分离架构:
- 后端技术框架: SpringBoot Mybatis tkMapper Mysql MongoDB Redis Groovy ES Swagger
- 前端技术框架: React(SPA)
各技术用途如下:
- Springboot:Java Web 框架
- Mybatis tkMapper: 持久层框架, tkMapper 提供mapper 通用模板功能,减少重复代码的生成
- Mysql : 本项目中关系数据库,主要用于存放风险模型的元信息
- MongoDB: 用于存放事件JSON, 提供基本统计学计算(例如:max, min, sum, avg,), 复杂的统计学概念(sd,variance, etc...)在内存中计算
- ES: 提供数据查询和规则命中报表服务
- Redis: 提供缓存支持,Engine 利用发布订阅特性监听管理端相关配置的更新
- Groovy: 规则引擎,风控规则最后都生成 groovy 脚本,实时编辑,动态生成,即时生效
- Swagger: Rest API 管理
架构图如下:
Radar提供了可视化的配置后台,能够很方便地进行模型构建和规则配置。通过模块创建风险模型:
定义需要关心的数据指标:
并进行策略集管理:
Radar安装简单,下载代码后maven安装:
git clone https://gitee.com/freshday/radar.git
mvn clean install
然后进行数据库的配置:
CREATE DATABASE IF NOT EXISTS radar DEFAULT CHARSET utf8mb4;
# 初始化数据库
source radar-init.sql
source radar-1.0.6.sql
项目启动还需要安装 redis 、 mongodb、elasticsearch,可以根据自身的开发环境自行配置。
两个启动项目的application.yml 都需要进行修改, 除了mysql配置外,在启动前还需要配置如下几个必要的选项:mongodb,redis,手机号码段文件,ip地址库:
mongodb:
url: mongodb://localhost:27017/radar //mongodb
mobile:
info:
path: D:/soft/moble_info.csv //手机号码段信息
ip2region:
db:
path: D:/soft/ip2region.db // IP地址库
然后启动即可:
# 运行服务端
cd radar-admin
java -jar radar-admin.jar
# 运行引擎端
cd radar-engine
java -jar radar-engine.jar
后台入口为:
管理端入口:http://localhost:6580
默认用户:admin/123456
引擎端入口:http://localhost:6581
Radar 基于Java语言,是使用 Spring boot Mongodb Groovy Es 等框架搭建的轻量级实时风控引擎,适用于反欺诈应用场景,极简的配置,真正做到了开箱即用。其便捷的可视化配置方式,使得小团队也能快速上手,构建自有的风控系统。
,