前言

限额限次作为最基础的累加

可以在这个基础上进行拓展,最核心的就是对应的规则引擎的能力,让其拥有更多的可拓展性的能力。

整体架构

<?xml version=”1.0” encoding=”UTF-8”?> <!DOCTYPE svg PUBLIC “-//W3C//DTD SVG 1.1//EN” “http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd”>

RPC/HTTP
业务系统
匹配规则
限额限次
(实时)
加载
mysql 配置
限额限次
(控台)
变更
读取历史数据
分布式数据库
信息落库
规则判断
返回结果

核心模块

流程引擎

这个可以用类似于 工作流引擎-00-流程引擎(Process Engine)概览 overview 实现页面的可视化。

当然,一般都是大材小用。

主要就是2个部分:准入条件+决策部分。

准入条件

可以使用规则引擎

checkpoint 核心的场景码+检测点

决策部分

黑白名单

限额限次

规则引擎

功能开关

大模型

系统配置

内置的系统核心属性

参数配置

响应编码等

业务配置

针对不同的业务

  • 业务线/机构
  • 业务枚举
  • 业务常量/列表 等等

指标

业务维度(名称==jsonPath)

流量累加(实时的流量累加,某种角度而言,和日志的流处理比较相似)

所以其实使用 vm 还是比较适合的。

规则

指标的复合使用

审核流程

试运行

命中记录


流 & 批

日志:准入条件(规则引擎、正则、包含等等)

label 提取:aviator 表达式、json-path 等等、函数?

累加:值固定值,表达式

CAT:http 采集

SQL: 定时执行

普米:自己实际研究玩一下


加一点细节

流程

多级 Tree

规则引擎

activiti 等可视化流程引擎

route: 路由===》决策引擎

参数

通用枚举

机构编码等

指标

基础指标:准入+提取+value值

衍生指标:各种计算+运算

来源

业务维度—请求参数—json-path

日志/SQL/CAT/普米

函数拓展

内置的函数

允许用户自定义 http/dubbo 等

规则

基本信息

版本控制

审批流

规则引擎—指标运算【操作符】【阈值】

条件—条件也可以进一步抽象

模拟/实际运行

页面配置

基础

指标-基础数据{time, label, value}

规则:拓展/复合

规则则

过滤条件、 时间、处理

实时

count / sum 累加

参考资料