整体执行流程

GoldenDB 的 SQL 限流采用 “逐级匹配、优先级递进” 的执行逻辑,确保限流的精准性和高效性。具体流程如下:

限流配置加载:用户在 GoldenDB 的限流管理页面完成限流方式、SQL 特征、最大并发数等参数配置后,系统将配置信息同步至数据库中间件的缓存中,确保实时生效。

目标 SQL 接收:客户端发送的 SQL 语句首先被 GoldenDB 中间件接收,中间件作为请求入口,负责 SQL 的解析、匹配和限流判断,避免无效请求进入数据库内核。

模板匹配阶段:中间件对目标 SQL 进行解析,生成 SQL 指纹和哈希值,与缓存中的模板 SQL 哈希值进行匹配。若匹配成功,则校验并发量:达到最大并发数则拒绝执行,否则更新并发量并允许执行。

令牌匹配阶段:若模板匹配失败,中间件对目标 SQL 进行词法解析,生成目标数组,与令牌数组进行长度校验和全量匹配。若匹配成功,则执行并发量校验逻辑。

规则匹配阶段:若令牌匹配失败,中间件对目标 SQL 进行语法解析,提取子操作特征,与预设规则进行匹配。若匹配成功则拒绝执行,否则将 SQL 语句提交至数据库内核执行。

结果反馈:无论是否允许执行,中间件都会向客户端返回明确的响应信息,包括执行结果、限流触发原因等,方便运维人员排查问题。

这一流程通过 “模板匹配优先、令牌匹配补充、规则匹配兜底” 的设计,实现了从整体到局部、从语法到语义的全方位覆盖,既保证了限流的精准性,又兼顾了执行效率。

架构设计亮点

GoldenDB 的 SQL 限流功能基于 “中间件层部署” 的架构设计,具有以下技术亮点:

无侵入式集成:限流逻辑部署在数据库中间件层,无需修改数据库内核代码和业务应用代码,可快速集成到现有系统中,降低升级成本。

分布式协同:在分布式部署场景下,中间件节点之间通过一致性协议同步限流配置和并发量统计信息,确保全局限流策略的一致性,避免单点节点的限流失效。

高性能设计:通过 SQL 指纹缓存、哈希索引、异步统计等技术优化,限流匹配过程的性能损耗控制在 1ms 以内,不会对数据库整体吞吐量造成影响。

可视化管理:提供 Web 化的限流管理页面,支持限流规则的配置、启用 / 禁用、参数调整等操作,同时提供限流日志查询、统计报表等功能,方便运维人员实时监控和管理。

打开网易新闻 查看精彩图片