本申请涉及一种分布式数据库中的SQL语句 的限流方法及其相关设备,方法包括:获取分布 式数据库中的目标业务SQL语句;对目标业务SQL 语句进行转换,以得到目标业务SQL语句对应的 目标摘要值;根据目标摘要值,从分布式数据库 的内部缓存中确定出目标实例,目标实例对应有 多个预设SQL语句,预设SQL语句用于对目标业务 SQL语句进行限流;将目标业务SQL语句与目标实 例对应的多个预设SQL语句进行匹配,以得到目 标业务SQL语句对应的目标匹配结果;根据目标 匹配结果,对目标业务SQL语句进行限流。本申请 减少了分布式数据库的性能损失,保证了分布式 数据库的稳定性和可用性。
1 .一种分布式数据库中的SQL语句的限流方法,其特征在于,包括: 获取分布式数据库中的目标业务SQL语句; 对所述目标业务SQL语句进行转换,以得到所述目标业务SQL语句对应的目标摘要值; 根据所述目标摘要值,从所述分布式数据库的内部缓存中确定出目标实例,所述目标 实例对应有多个预设SQL语句,所述预设SQL语句用于对所述目标业务SQL语句进行限流; 将所述目标业务SQL语句与所述目标实例对应的多个所述预设SQL语句进行匹配,以得 到所述目标业务SQL语句对应的目标匹配结果; 根据所述目标匹配结果,对所述目标业务SQL语句进行限流。
2.根据权利要求1所述的方法,其特征在于,所述将所述目标业务SQL语句与所述目标 实例对应的多个所述预设SQL语句进行匹配,以得到所述目标业务SQL语句对应的目标匹配 结果,包括: 针对所述目标实例对应的每个所述预设SQL语句,获取所述预设SQL语句对应的预设匹 配规则,所述预设匹配规则包括预设精确匹配规则和预设模糊匹配规则; 根据所获取到的多个所述预设匹配规则,将所述目标业务SQL语句与所述目标实例对 应的多个所述预设SQL语句进行匹配,以得到所述目标业务SQL语句对应的目标匹配结果。
3.根据权利要求1所述的方法,其特征在于,所述分布式数据库的内部缓存中缓存有多 个预设实例,每个预设实例对应有预设摘要值; 所述根据所述目标摘要值,从所述分布式数据库的内部缓存中确定出目标实例,包括: 根据所述目标摘要值,从所述分布式数据库的内部缓存中确定出满足第一预设条件的 所述预设实例,所述第一预设条件包括所述预设实例的所述预设摘要值与所述目标摘要值 一致; 将满足所述第一预设条件的所述预设实例确定为所述目标实例。
4.根据权利要求1所述的方法,其特征在于,所述根据所述目标匹配结果,对所述目标 业务SQL语句进行限流,包括: 在所述目标匹配结果为匹配成功时,从所述目标实例对应的多个所述预设SQL语句中 确定出与所述目标业务SQL语句相匹配的所述预设SQL语句; 确定与所述目标业务SQL语句相匹配的所述预设SQL语句是否用于对所述分布式数据 库进行限流; 在确定与所述目标业务SQL语句相匹配的所述预设SQL语句用于对所述分布式数据库 进行限流时,对所述目标业务SQL语句进行限流。
5.根据权利要求4所述的方法,其特征在于,所述在确定与所述目标业务SQL语句相匹 配的所述预设SQL语句用于对所述分布式数据库进行限流时,对所述目标业务SQL语句进行 限流,包括: 在确定与所述目标业务SQL语句相匹配的所述预设SQL语句用于对所述分布式数据库 进行限流时,确定与所述目标业务SQL语句相匹配的所述预设SQL语句所对应的预设语句并 发数; 确定所述目标业务SQL语句的目标并发数是否超过所述预设语句并发数; 在所述目标业务SQL语句的所述目标并发数超过所述预设语句并发数时,对所述目标 业务SQL语句进行限流。
6.根据权利要求1所述的方法,其特征在于,所述分布式数据库的内部缓存中缓存有多 个预设实例,每个预设实例对应有多个预设SQL语句,所述目标实例属于多个所述预设实例 中的一个; 所述将所述目标业务SQL语句与所述目标实例对应的多个所述预设SQL语句进行匹配, 以得到所述目标业务SQL语句对应的目标匹配结果,包括: 获取预设黑名单,所述预设黑名单中包括至少一个所述预设SQL语句,所述预设黑名单 中的所述预设SQL语句用于对所述分布式数据库限流过程中,关闭所述预设SQL语句,以使 得所述预设SQL语句失效; 针对所述分布式数据库的内部缓存中的每个所述预设实例,根据所述预设黑名单对所 述预设实例对应的多个所述预设SQL语句进行处理,以得到所述预设实例对应的多个处理 后的所述预设SQL语句; 将所述目标业务SQL语句与所述目标实例对应的多个处理后的所述预设SQL语句进行 匹配,以得到所述目标业务SQL语句对应的目标匹配结果。
7 .根据权利要求1所述的方法,其特征在于,所述分布式数据库的内部缓存和系统表中 均缓存有多个预设实例,每个预设实例对应有多个预设SQL语句,所述目标实例属于多个所 述预设实例中的一个; 所述方法,还包括: 在接收到多个所述预设SQL语句中的一个所述预设SQL语句对应的变更请求时,根据所 述变更请求中所携带的变更信息,对所述分布式数据库的内部缓存和系统表中的所述预设 SQL语句进行变更,以完成所述预设SQL语句的更新; 在完成所述内部缓存和所述系统表中的所述预设SQL语句的更新后,返回执行所述获 取分布式数据库中的目标业务SQL语句步骤。
8.一种分布式数据库中的SQL语句的限流装置,其特征在于,包括: 获取模块,获取分布式数据库中的目标业务SQL语句; 处理模块,用于对所述目标业务SQL语句进行转换,以得到所述目标业务SQL语句对应 的目标摘要值; 确定模块,用于根据所述目标摘要值,从所述分布式数据库的内部缓存中确定出目标 实例,所述目标实例对应有多个预设SQL语句,所述预设SQL语句用于对所述目标业务SQL语 句进行限流; 匹配模块,用于将所述目标业务SQL语句与所述目标实例对应的多个所述预设SQL语句 进行匹配,以得到所述目标业务SQL语句对应的目标匹配结果; 限流模块,用于根据所述目标匹配结果,对所述目标业务SQL语句进行限流。
9.一种电子设备,其特征在于,包括:处理器和存储器,所述处理器用于执行所述存储 器中存储的分布式数据库中的SQL语句的限流程序,以实现权利要求1~7中任一项所述的 分布式数据库中的SQL语句的限流方法。
10.一种存储介质,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或 者多个程序可被一个或者多个处理器执行,以实现权利要求1~7中任一项所述的分布式数 据库中的SQL语句的限流方法。