一個不錯的開源專案風控引擎(Radar)

語言: CN / TW / HK

專案介紹

一款基於java語言,使用Springboot + Mongodb + Groovy + Es等框架搭建的輕量級實時風控引擎,適用於反欺詐應用場景,極簡的配置,真正做到了開箱即用。

通過學習本專案能快速瞭解 風險的定義 ,進而 量化風險 ,最後達到 集中管理風險 的目的。

A real-time risk analysis engine,which can update risk rule in real-time and make it effective immediately.

It applies to the anti-fraud application perfectly. The project code called Radar, like the code, monitor the transaction at the back.

專案特點

  • 實時風控,特殊場景可以做到100ms內響應

  • 視覺化規則編輯器,豐富的運算子、計算規則靈活

  • 支援中文,易用性更強

  • 自定義規則引擎,更加靈活,支援複雜多變的場景

  • 外掛化的設計,快速接入其它資料能力平臺

  • NoSQL,易擴充套件,高效能

  • 配置簡單,開箱即用!

相關站點

Gitee:  https://gitee.com/freshday/radar     
Github: https://github.com/wfh45678/radar // github 為映象網站,貢獻程式碼請提交到 gitee  
官網:  https://www.riskengine.cn  
Wiki:   https://gitee.com/freshday/radar/wikis/home

背景

伴隨著移動網際網路的高速發展,羊毛黨快速崛起,從一平臺到另一個平臺,所過之處一地雞毛,這還不是最可怕的, 隨之而來的黑產令大部分網際網路應用為之膽寒,通常新上線的APP的福利比較大,風控系統不完善,BUG 被發現的頻率也比較高, 黑產利用BUG短時間給平臺帶來了巨大的損失,某多多的(100元測試優惠券,一夜損失上百萬W)就是一例。 針對這一現象, 擁有一款實時的風控引擎是所有帶有金融性質的APP 的當務之急,Radar應景而生。

Radar前身是筆者前公司的一個內部研究專案,由於眾多原因專案商業化失敗,考慮到專案本身的價值,棄之可惜, 現使用Springboot進行重構,刪除了很多本地化功能,只保留風控引擎核心,更加通用,更加輕量,二次開發成本低, 開源出來,希望能給有風控需求的你們帶來一些幫助。

專案初衷

我們知道企業做大後,會有很多產品線,而幾乎每一個產品都需要做風險控制,通常我們都是把風險控制的邏輯寫在相應的業務功能程式碼裡, 大量重複的風控邏輯程式碼耦合在我們的業務邏輯裡面,隨著時間的累積,程式碼會變得異常複雜,會給後期的維護造成巨大的人力成本和風險。

所以風險的集中化管理勢在必行,只有通過一個統一的管理平臺,使用規則引擎,採用視覺化配置的形式, 平臺化管理不同產品的風控策略才是一種更好的方式, 而這正是Radar的初衷。

專案架構

前後端分離架構

後端技術框架: SpringBoot + Mybatis + tkMapper + Mysql + MongoDB + Redis + Groovy + ES + Swagger

前端技術框架: React(SPA)

架構圖

技術選型

  • Springboot:筆者是java 出生, 選擇 Springboot 理所當然,方便自己, 也方便其他Java使用者進行擴充套件。

  • Mybatis + tkMapper: 持久層框架, tkMapper 提供mapper 通用模板功能,減少重複程式碼的生成。

  • Mysql : 本專案中關係資料庫,主要用於存放 風險模型的元資訊。

  • MongoDB: 用於存放事件JSON, 提供基本統計學計算(例如:max, min, sum, avg,), 複雜的統計學概念(sd,variance, etc...)在記憶體中計算。

  • ES: 提供資料查詢和規則命中報表服務。

  • Redis: 提供快取支援,Engine 利用釋出訂閱特性監聽管理端相關配置的更新

  • Groovy: 規則引擎,風控規則最後都生成 groovy 指令碼, 實時編輯,動態生成,即時生效。

  • Swagger: Rest API 管理

使用手冊

使用手冊裡面有大量的圖片,為了方便國內使用者使用,故推薦碼雲的wiki 連結,

https://gitee.com/freshday/radar/wikis/manual

演示入口

通過管理端能夠快速瞭解系統是怎麼從風險的定義到風險的量化再到風險的集中管理的整個工作流程。

為了更好的體驗,請花一分鐘觀看 使用手冊

Demo URL: https://www.riskengine.cn

建議大家自行註冊使用者,避免使用同樣的測試賬號受干擾.

相關文件

WIKI: https://gitee.com/freshday/radar/wikis/home?sort_id=1637444