文章目录
  1. 1. 背景
    1. 1.1. 常见风险:
    2. 1.2. 风控系统
      1. 1.2.1. 离线系统
      2. 1.2.2. 实时系统
        1. 1.2.2.1. 主要技术点

背景

公司需要开发风控系统之前没有接触过这一块,在网上查询好多资料或得的一些思路,开发的过程也走了些弯路踩了不少坑现在记录下来。

对于风控来说就是提前预防风险降低安全事故的发生,并且能及早发现和封堵;在前期的探索阶段都是利用日志或者离线数据发现规律,在做下面的实时风控系统之前,前期是利用ELK记录的日志数据来查找规律发现一些问题的。

常见风险:

研究风控之前有一些风险是比较常出现的:

  1. 利用机器访问:爬虫、频繁调用短信接口、垃圾注册等
  2. 人为原因:薅羊毛、金融盗刷等

风控系统

风控系统分为实时风控和非实时风控系统,两种用途不太一样实时系统可以快速拦截风险,非实时离线系统可以发现一些未知风险。

离线系统

离线系统前期更多的是用于数据分析和发现规律,可以利用已知风险数据和一些机器学习的方法发现一些风险点;同时离线数据也可以为实时系统提供信息决策。前期做离线分析的时候用过相关性分析、决策树、k临近算法等等。

实时系统

实时系统对系统的响应比较高,本次项目就是利用drools规则引擎可以迅速的更改规则不必重新部署就可以做到发现和拦截一些风险访问。

主要技术点

公司访问量比较订单一天大于2000w单,技术框架采用的是kakfa,spark-streaming、drools、redis、postgresql,下面是系统的一个总体框架图

drools规则放置在postgresql数据库可以实时更改规则,redis作为临时数据缓存,加载历史数据可以通过历史发现一些发现,例如交易总不在固定地点、多次查询余额等等;通过运行发现处理速度还是不错的,性能瓶颈主要在缓存数据的获取上,总体运行下来单台redis的处理性能达到每数4w/s左右效率还是不错的。

把部分代码提交到了我的github上。

文章目录
  1. 1. 背景
    1. 1.1. 常见风险:
    2. 1.2. 风控系统
      1. 1.2.1. 离线系统
      2. 1.2.2. 实时系统
        1. 1.2.2.1. 主要技术点