分布式数据库限流方法、限流装置、系统及电子设备与流程

文档序号:34384201发布日期:2023-06-08 05:07阅读:27来源:国知局
分布式数据库限流方法、限流装置、系统及电子设备与流程

本申请涉及计算机,具体涉及一种分布式数据库限流方法、限流装置、系统及电子设备。


背景技术:

1、随着分布式数据库的广泛应用,用户对分布式数据库也提出了更高的性能要求。为应对突发的数据库请求流量、资源消耗过高的语句访问以及sql访问模型的变化等问题,需要对分布式数据库增加限流功能来限制造成上述问题的sql执行,从而保证实例的持续稳定运行。

2、目前的开源产品中没有提供独立的sql限流工具,若采用公有云产品,由于公有云产品为外网数据库管理服务,若要使用其对内网数据库进行sql流量管控,则需要使得外网数据库管理服务能够获取内网数据库实例的sql,但是,该流量管控方法存在有安全隐患。


技术实现思路

1、本申请实施例提供一种分布式数据库限流方法、限流装置、系统及电子设备,以降低分布式数据库限流功能的安全隐患。

2、本申请实施例的一方面提供一种分布式数据库限流方法,用于数据库中间件中,数据库中间件经由代理服务器连接至数据库服务端,代理服务器用于对数据库服务端下发的sql流量控制请求进行处理,以得到sql流量管控配置信息;方法包括:获取sql流量管控配置信息;基于sql流量管控配置信息中指定的限流模式以及原始sql语句,确定与限流模式相对应的对照sql语句;将对照sql语句作为流量管控条件更新至数据库中间件的内存;基于流量管控条件,对客户端的sql请求进行流量管控。

3、在一些实施例中,基于限流模式以及原始sql语句,确定与限流模式相对应的对照sql语句,包括:若限流模式为sql模版限流模式,对原始sql语句进行指纹化处理,以生成对照sql语句;若限流模式为sql文本限流模式,将原始sql语句作为对照sql语句。

4、在一些实施例中,在将对照sql语句作为流量管控条件更新至数据库中间件的内存之前,方法还包括:对对照sql语句进行格式化处理,以更新对照sql语句。

5、在一些实施例中,sql流量管控配置信息包括qps限制信息,将对照sql语句作为流量管控条件更新至数据库中间件的内存,包括:将对照sql语句以及qps限制信息作为流量管控条件更新至数据库中间件的内存。

6、在一些实施例中,基于流量管控条件,对客户端的sql请求进行流量管控,包括:获取客户端的sql请求;解析sql请求,以生成解析sql语句;基于解析sql语句和限流模式,确定与限流模式相对应的目标sql语句;若目标sql语句与对照sql语句不匹配,则对sql请求进行放行;若目标sql语句与对照sql语句相匹配且当前目标sql语句的执行量小于qps限制信息,则对sql请求进行放行;若目标sql与对照sql语句相匹配且当前目标sql语句的执行量大于或等于qps限制信息,则向客户端发送错误信息。

7、在一些实施例中,基于解析sql请求和限流模式,确定与限流模式相对应的目标sql语句,包括:若限流模式为sql模版限流模式,对解析sql语句进行指纹化处理,以生成目标sql语句;若限流模式为sql文本限流模式,将解析sql语句作为目标sql语句。

8、在一些实施例中,在基于解析sql语句和限流模式,确定与限流模式相对应的目标sql语句之后,方法还包括:对目标sql语句进行格式化处理,以更新目标sql语句。

9、本申请实施例的另一方面提供一种分布式数据库限流装置,用于数据库中间件中,数据库中间件经由代理服务器连接至数据库服务端,代理服务器用于对数据库服务端下发的sql流量控制请求进行处理,以得到sql流量管控配置信息;装置包括:获取单元,用于获取sql流量管控配置信息;确定单元,用于基于sql流量管控配置信息中指定的限流模式以及原始sql语句,确定与限流模式相对应的对照sql语句;更新单元,用于将对照sql语句作为流量管控条件更新至数据库中间件的内存;处理单元,用于基于流量管控条件,对客户端的sql请求进行流量管控。

10、本申请实施例的另一方面提供一种分布式数据库系统,包括:数据库中间件、代理服务器、数据库服务端以及多个数据库分片;数据库服务端用于获取由数据库管理员下发的sql流量控制请求;代理服务器用于接受sql流量控制请求,并对sql流量控制请求进行转码,以生成sql流量管控配置信息;数据库中间件用于执行如上任一项所述的方法,且数据库中间件还用于将客户端的sql请求发送至多个数据库分片进行执行,并将多个数据库分片返回的结果转发至客户端。

11、本申请实施例的另一方面提供一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行如上任一项所述的方法。

12、本申请实施例的另一方面提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如上任一项所述的方法。

13、本申请实施例的另一方面提供一种计算机程序产品,包括计算机程序,其特征在于,计算机程序被处理器执行时实现如上任一实施例的方法。

14、本申请实施例提供的分布式数据库限流方法、限流装置、系统及电子设备,通过在数据库中间件中应用分布式数据库限流方法,数据库中间件经由代理服务器连接至数据库服务端,代理服务器用于对数据库服务端下发的sql流量控制请求进行处理,以得到sql流量管控配置信息;方法包括:获取sql流量管控配置信息;确定sql流量管控配置信息中的原始sql语句的限流模式;基于限流模式以及原始sql语句,确定与限流模式相对应的对照sql语句;将对照sql语句作为流量管控条件更新至数据库中间件的内存;基于流量管控条件,对客户端的sql请求进行流量管控,可以直接在分布式数据库的数据库中间件中添加sql流量管控功能,即可以直接通过内网数据库实现sql的流量管控,无需采用外网数据库管理服务,不存在安全隐患。



技术特征:

1.一种分布式数据库限流方法,其特征在于,用于数据库中间件中,所述数据库中间件经由代理服务器连接至数据库服务端,所述代理服务器用于对所述数据库服务端下发的sql流量控制请求进行处理,以得到sql流量管控配置信息;所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述基于所述sql流量管控配置信息中指定的限流模式以及原始sql语句,确定与所述限流模式相对应的对照sql语句,包括:

3.根据权利要求1所述的方法,其特征在于,在所述将所述对照sql语句作为流量管控条件更新至所述数据库中间件的内存之前,所述方法还包括:

4.根据权利要求1所述的方法,其特征在于,所述sql流量管控配置信息包括qps限制信息,所述将所述对照sql语句作为流量管控条件更新至所述数据库中间件的内存,包括:

5.根据权利要求4所述的方法,其特征在于,所述基于所述流量管控条件,对客户端的sql请求进行流量管控,包括:

6.根据权利要求5所述的方法,其特征在于,

7.根据权利要求5所述的方法,其特征在于,在所述基于所述解析sql语句和所述限流模式,确定与所述限流模式相对应的目标sql语句之后,所述方法还包括:

8.一种分布式数据库限流装置,其特征在于,用于数据库中间件中,所述数据库中间件经由代理服务器连接至数据库服务端,所述代理服务器用于对所述数据库服务端下发的sql流量控制请求进行处理,以得到sql流量管控配置信息;所述装置包括:

9.一种分布式数据库系统,其特征在于,包括:数据库中间件、代理服务器、数据库服务端以及多个数据库分片;

10.一种电子设备,其特征在于,包括:

11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一项所述的方法。


技术总结
本申请提供了一种分布式数据库限流方法、限流装置、系统及电子设备,该方法用于数据库中间件中,包括:获取SQL流量管控配置信息;确定SQL流量管控配置信息中的原始SQL语句的限流模式;基于限流模式以及原始SQL语句,确定与限流模式相对应的对照SQL语句;将对照SQL语句作为流量管控条件更新至数据库中间件的内存;基于流量管控条件,对客户端的SQL请求进行流量管控,可以直接在分布式数据库的数据库中间件中添加SQL流量管控功能,即可以直接通过内网数据库实现SQL的流量管控,无需采用外网数据库管理服务,不存在安全隐患。

技术研发人员:刘畅,骆维,陈存利
受保护的技术使用者:度小满科技(北京)有限公司
技术研发日:
技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1