风控系统就该这么设计(万能通用),那是相当稳定

这篇具有很好参考价值的文章主要介绍了风控系统就该这么设计(万能通用),那是相当稳定。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 一、背景

    • 1.为什么要做风控?

    • 2.为什么要自己写风控?

    • 3.其它要求

  • 二、思路

    • 1.风控规则的实现

    • 2.调用方式的实现

  • 三、具体实现

    • 1.风控计数规则实现

    • 2.注解的实现

  • 四、测试一下

    • 1.写法

    • 2.Debug看看

一、背景

1.为什么要做风控?

 文章来源地址https://www.toymoban.com/news/detail-435647.html

这不得拜产品大佬所赐,我们的业务目前广泛使用了各种人工智能能力,如OCR识别、语音测评等。这些先进的能力往往需要大量资金和资源来支持,因此我们在产品层面也希望对用户的使用次数进行一定的限制。为了保护我们的业务和客户,风控措施是必不可少的。我们还在不断努力研究和开发新的AI技术,以提高我们的能力和服务质量,同时也在积极寻求更多的资金和资源,以满足业务的不断发展和扩张。我们坚信,只有不断创新和努力,才能为客户提供更好的服务和体验,同时也为我们的企业带来更大的发展和成功。 

2.为什么要自己写风控?

那么多开源的风控组件,为什么还要写呢?是不是想重复发明轮子呀.

 风控系统就该这么设计(万能通用),那是相当稳定

要想回答这个问题,需要先解释下我们业务需要用到的风控(简称业务风控),与开源常见的风控(简称普通风控)有何区别:风控系统就该这么设计(万能通用),那是相当稳定 

因此,直接使用开源的普通风控,一般情况下是无法满足需求的

3.其它要求 

支持实时调整限制

很多限制值在首次设置的时候,基本上都是拍定的一个值,后续需要调整的可能性是比较大的,因此可调整并实时生效是必须的

 

二、思路 

要实现一个简单的业务风控组件,要做什么工作呢?

1.风控规则的实现

a.需要实现的规则:

  • 自然日计数

  • 自然小时计数

  • 自然日+自然小时计数

自然日+自然小时计数 这里并不能单纯地串联两个判断,因为如果自然日的判定通过,而自然小时的判定不通过的时候,需要回退,自然日跟自然小时都不能计入本次调用!

b.计数方式的选择:

目前能想到的会有:

  • mysql+db事务 持久化、记录可溯源、实现起来比较麻烦,稍微“重”了一点

  • redis+lua 实现简单,redis的可执行lua脚本的特性也能满足对“事务”的要求

  • mysql/redis+分布式事务 需要上锁,实现复杂,能做到比较精确的计数,也就是真正等到代码块执行成功之后,再去操作计数

目前没有很精确技术的要求,代价太大,也没有持久化的需求,因此选用 redis+lua 即可

2.调用方式的实现

a.常见的做法 先定义一个通用的入口

风控系统就该这么设计(万能通用),那是相当稳定 

在service中调用该方法风控系统就该这么设计(万能通用),那是相当稳定 

在编写代码的过程中,我们时常会寻求更优雅的实现方式。对于传入的 content 参数,由于它与业务有关,因此我们需要使用 SpEL(Spring Expression Language)来将参数构建成相应的 content。但是我们可以考虑使用注解的方式来实现,这样可以更好地将参数与业务逻辑分离开。当然,这种做法也有一些争议,需要根据具体情况来决定是否使用。

 

三、具体实现

1.风控计数规则实现

a.自然日/自然小时

自然日/自然小时可以共用一套lua脚本,因为它们只有key不同,脚本如下:

风控系统就该这么设计(万能通用),那是相当稳定 

在这个函数中,KEYS[1] 是与日/小时相关的键,ARGV[1] 是上限值,ARGV[2] 是过期时间。该函数返回当前计数值加 1 后的结果。如果已经达到上限,则实际上不会计数。通过该函数,我们可以轻松地跟踪某个特定时间段内的操作次数。例如,我们可以使用这个函数来记录我们网站的每日或每小时访问量,以便更好地了解网站流量的变化趋势。

b.自然日+自然小时 如前文提到的,两个的结合实际上并不是单纯的拼凑,需要处理回退逻辑风控系统就该这么设计(万能通用),那是相当稳定

在此代码中,KEYS[1]是由天生成的关联密钥,KEYS[2]是由小时生成的关联密钥。ARGV[1]表示天的最大值,ARGV[2]表示小时的最大值,ARGV[3]表示天的过期时间,ARGV[4]表示小时的过期时间。函数返回与上述代码相同的值。

需要注意的是,虽然上述代码粗略地表达了其意图,但是可以进一步完善以增强其可读性。具体而言,当两个条件判断中有一个未能满足时,另一个条件也需要回滚。因此,可以进一步解释该代码的逻辑,并增加注释以使其更易于理解。

2.注解的实现 

a.定义一个@Detect注解

 风控系统就该这么设计(万能通用),那是相当稳定

其中content是需要经过表达式解析出来的,所以接受的是个String

b.定义@Detect注解的处理类风控系统就该这么设计(万能通用),那是相当稳定

需要将参数放入到上下文中,并起名为arg1arg2....

四、测试一下

1.写法

使用注解之后的写法:

 风控系统就该这么设计(万能通用),那是相当稳定


2.Debug看看 

风控系统就该这么设计(万能通用),那是相当稳定 

  • 注解值获取成功

  • 表达式解析成功

 

到了这里,关于风控系统就该这么设计(万能通用),那是相当稳定的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 风控安全产品系统设计的一些思考

    本篇文章会从系统架构设计的角度,分享在对 业务安全风控相关基础安全产品 进行 系统设计 时遇到的 问题难点 及其 解决方案 。 内容包括三部分:(1)风控业务架构;(2)基础安全产品的职责;(3)基础安全产品相关系统架构的设计要点。 文章会以总-分的形式进行阐

    2024年02月05日
    浏览(36)
  • 风控相关安全产品系统设计的一些思考

    目录 背景 风控业务架构 组件层 业务层 决策层 能力层 计算层 可视层 基础安全组件 落地难点 接入场景多 接入终端多 接入组件多 待解决问题 架构特性 安全性 稳定性 易用性 具体案例 问题分析 攻击场景 攻击还原 攻击步骤防御可行性分析 系统设计 系统架构 组件层 透传层

    2023年04月17日
    浏览(92)
  • 这么全的权限系统设计方案,不值得收藏吗?

    日常工作中权限的问题时时刻刻伴随着我们,程序员新入职一家公司需要找人开通各种权限,比如网络连接的权限、编码下载提交的权限、监控平台登录的权限、运营平台查数据的权限等等。 在很多时候我们会觉得这么多繁杂的申请给工作带来不便,并且如果突然想要查一些

    2024年04月28日
    浏览(33)
  • 复杂业务系统的通用架构设计法则

    我们经常提到复杂系统,那么到底什么是复杂系统。我们看下维基的定义:复杂系统(英语:complex system),又称复合系统,是指由许多可能相互作用的组成成分所组成的系统。强调了两点: 由点组成 点之间有各种关联 两点的规模和复杂性直接决定了系统的复杂程度。比如

    2024年02月08日
    浏览(54)
  • 28张图讲解支付系统的通用设计,漂亮!

    支付永远是一个公司的核心领域,因为这是一个有交易属性公司的命脉。那么,支付系统到底长什么样,又是怎么运行交互的呢?抛开带有支付牌照的金融公司的支付架构,下述链路和系统组成基本上符合绝大多数支付场景。其实整体可以看成是交易核心+支付核心 两个大系

    2024年02月13日
    浏览(36)
  • 【架构实践】复杂业务系统的通用架构设计法则

    目录 一、什么是复杂系统 二、什么是架构 三、架构的本质 四、架构分类

    2024年02月08日
    浏览(48)
  • Fabric V2.5 通用溯源系统——区块链部分设计

    本节对Fabric V2.5 通用溯源系统的区块链部分做一个简单的介绍,包括目录结构、文件作用、设计思路。 此节内容免费发布在TrueTechLabs Fabric学习交流QQ群。 购买专栏前请认真阅读:《Fabric项目学习笔记》专栏介绍 TrueTechLabs Fabric学习交流QQ群:

    2024年04月28日
    浏览(36)
  • 基于Matlab通用视频处理系统的设计-含Matlab代码

    随着信息技术的发展,基于视频图像中对感兴趣的目标提取,已经逐渐渗透到人们生活的方方面面,吸引越来越多的学者和研究机构参与该领域的研究。基于视频图像中对感兴趣的目标提取已广泛应用于监控视频、人脸识别、车道线识别、安全帽佩戴情况检测、行星探测等领

    2023年04月08日
    浏览(32)
  • 基于 STM32+FPGA 的通用工业控制器设计(一)系统方案设计

    本章首先介绍了现有 PLC 系统的概况,然后提出了本文设计的通用工业控制器的 整体方案架构,分析了硬件和软件上需要实现的功能,最后对各部分功能进行分析并提 出具体的实现方案。 2.1 PLC 系统简介 可编程逻辑控制器( Programmable Logic Controller , PLC )是以微处理器为基

    2024年02月15日
    浏览(66)
  • 验证码,让风控系统更安全

    风控系统指通过识别、评估、管理风险,可以帮助企业和个人降低风险,提高安全性。在金融领域,风控可以帮助金融机构识别和评估信用风险、市场风险、操作风险等,从而降低金融机构的损失。在保险领域,风控可以帮助保险公司识别和评估保险风险,从而提高保险公司

    2024年02月03日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包