转自公众号「后端搬运工」:基于准实时规则引擎的业务风控实践
在当今复杂的互联网环境下,我们的系统时时刻刻都暴露在风险(刷单党、羊毛党)的攻击之中,如果我们不采取有效防御措施,那么这些风险就会对业务造成很大的损失。
用公式可以表达出风控规则和风险数据的系统关系:z=f(x, y),f 为系统风控规则,x 为系统实时输入风险数据,y 为系统的事实数据。
挑战性
- 数据量大,计算延时严重
- 风控策略多变
目标
- 准确及时识别风险
- 采取有效防御措施
总体架构
基于大数据实时计算和可热更新的通用规则引擎,搭建一套业务风控系统。
业务风险:刷单(订单)、薅羊毛(活动)、恶意注册和异常登录(用户)
业务服务:
- 风控系统:识别业务风险,根据业务或埋点数据判断当前用户或事件有无风险;
- 惩罚系统:对系统风险操作进行控制或惩罚,如禁止下单、增加验证码、限制登录;
- 分析系统(管理系统):提供系统管理和数据展示分析。系统管理如规则管理,分析业务数据如风险的订单,分析系统指标数据如某策略规则拦截率,以及时修正策略规则;
系统引擎:
- 规则引擎:策略规则的解析和执行,选用 B 站开源的 gengine(golang)
- 规则引擎;大数据计算引擎:实时在线或离线计算业务指标数据,选用 Flink + Kafka 流计算引擎,指标数据存储在 Redis(数据异构)。各云厂商提供相应服务,如腾讯云流计算 Oceanus;
- 消息中心:各系统之间通过事件驱动,选用 Kafka
存储:
- MySQL:风控规则等
- Redis:指标数据
- Mongo:操作日志、快照等
系统工作流程
包含 3 个数据流。
- 实时风控数据流:由红线标识。业务同步调用风控系统,返回风险识别结果,并作相应惩罚,为系统核心链路;
- 准实时指标数据流:由蓝线标识。大数据计算引擎实时异步写入,准备业务指标数据并存储在 Redis,为系统准实时链路;
- 准实时/离线分析数据流:由绿线标识。异步写入,生成业务报表和评估风控系统表现的数据,以供进行数据分析;
更多内容请前往原文,公众号「后端搬运工」:基于准实时规则引擎的业务风控实践。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。