背景

设计一个系统为多个业务线(支付,信贷,交易,广告等)提供毫秒级实时风控决策能力。

系统需求和范围定义

功能需求:

1. 实时决策。输入用户行为,上下文,输出:allow/deny/review + risk score

2. 规则和模型混合决策

3. 实施特征计算。例如过去5分钟交易次数,过去24小时失败率。要求,低延迟,高准确率。

4. 多租户支持(multi-tennants):不同业务,要求数据隔离,配置隔离,SLA隔离

非功能需求:

1. 低延迟:P99 < 50ms

2. 高可用性:99.99%

3. QPS: 百万级

4. 全球部署 (多 region)

5. 强一致性 vs 最终一致性

API设计

1. 评估某次行为的风险:

POST: /risk

body: {

"event": "pay"/"credit"/"business"/"ads",

"timestamp": "2026/5/30 15:30:00 UTC"

}

response: 200 OK

body: {

"result": "allow"/"deny",

"risk-score": "65"

}

系统架构设计

系统架构如下:

详细说明如下:

1. user通过API Gateway向后端发送风险评估请求

2. API Gateway进行authentication和access rate control,然后将请求发送给后端的第一个service - decision engine

3. decision engine有三个service可以调用:rule engine,model service,和feature service。下面一一说明

4. rule engine:进行基于规则的风险评估。速度快,结果稳定,但是处理的方式通常简单,不易随着最新数据进行进化。比如维护black list,或者white list。

5. feature service:提供用户的相关背景信息。比如用户最近的行为记录。

6. model service:调用AI model,提供用户全面的信息,得到复杂而全面的风险评估结果。

7. model registry:维护AI model。系统可以注册多个model,灵活的更换model,升级model,和进行A/B testing

8. offline store: 这里是一个data lake。通常可以通过AWS的S3,和一些相关service搭建和维护,比如spark,DDB,GLUE, arthena,等。在offline store里保留用户相关的所有信息。

9. stream processor:感知data lake数据的更新,按照数据流处理用户最新的行为,将结果存储到online store。

10. online feature store:这里是真正共AI model使用的用户信息。因为我们需要根据信息的重要程度和更新程度通过cache快速相应feature service的请求。这里可以考虑使用DDB + redis的方式。

讨论

这里有若干问题值得讨论。

1. 如果我们的service为全球范围,很明显我们需要为我们的service划分region。对于用户的请求可以就近选择region。这样我们需要在每一个region都设置一个service可以相应用户的请求。这样整体系统编程alive-alive的模式。region和region之间需要同步数据。这涉及到replica的技术。

2. 如果我们需要应对针对某些客户的频繁访问和攻击问题,我们可以考虑在decision engine处设置risk的cache。这样在限定的时间内我们不需要重复调用feature service和model service,而是直接返回上一次计算的risk 结果。

3. 针对于大的user,比如feature service返回的结果非常多,同时model service调用时间过长的问题,我们可以考虑pre-compute他们的risk。这样在实时获取他们的risk的时候我们不需要实时计算,而是直接读取已经计算好的risk结果。

4. 针对多个租户隔离的问题,我们可以规定在数据方面通过namespace隔离不同租户的数据;在计算资源方面,每个租户独立计算和控制quota;在配置方面,每个用户也有独立的DAG设置。

设计模式总结:

1. 对于需要快速而且可靠的数据处理要求,FLINK/Kafka是最为普遍的技术和工具选择

2. 对于需要快速读取数据的请求,redis是最为普遍的选择

3. 对于AI的调用,最为普遍的做法为在AI model之前创建model service或者inference service,以使得AI model的调用更为灵活。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐