CN115757486A - 一种基于jdbc代理模式的限流方法及装置 - Google Patents
一种基于jdbc代理模式的限流方法及装置 Download PDFInfo
- Publication number
- CN115757486A CN115757486A CN202211379467.2A CN202211379467A CN115757486A CN 115757486 A CN115757486 A CN 115757486A CN 202211379467 A CN202211379467 A CN 202211379467A CN 115757486 A CN115757486 A CN 115757486A
- Authority
- CN
- China
- Prior art keywords
- query statement
- current
- control condition
- current limiting
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种基于JDBC代理模式的限流方法及装置,涉及人工智能领域,也可用于金融领域,包括:从客户端接收查询语句执行请求,并将所述查询语句执行请求发送至数据库服务器;解析配置文件,并将预设的限流控制条件映射至对应的查询语句;所述限流控制条件包括是否包括大数据量表格;根据所述限流控制条件反馈查询语句执行结果至所述客户端。本申请能够基于限流控制条件向客户端反馈查询语句执行结果,保护数据库服务器的系统稳定。
Description
技术领域
本申请涉及数据库领域,可以用于金融领域,具体是一种基于JDBC代理模式的限流方法及装置。
背景技术
金融机构中一般设置有基础数据平台,其通过执行批量作业,接收来自事务型业务系统的各类交易明细数据,对该交易明细数据进行转换、集成与加工批量处理,并按照金融机构的数据主题来组织和存储数据,为分析型应用提供数据支撑。
当客户端发起数据查询请求时,若数据查询请求对应的查询反馈结果过多,会导致数据库服务器的内存出现崩溃,现有技术通常通过修改数据库服务器的底层程序进行限流。然而,现有技术至少存在如下缺陷:第一,通过修改数据库服务器的底层程序进行限流的方式工作繁琐;第二,通过修改数据库服务器的底层程序进行限流的方式不支持可配置。
发明内容
针对现有技术中的问题,本申请提供一种基于JDBC代理模式的限流方法及装置,能够基于限流控制条件向客户端反馈查询语句执行结果,保护数据库服务器的系统稳定。
为解决上述技术问题,本申请提供以下技术方案:
第一方面,本申请提供一种基于JDBC代理模式的限流方法,包括:
从客户端接收查询语句执行请求,并将所述查询语句执行请求发送至数据库服务器;
解析配置文件,并将预设的限流控制条件映射至对应的查询语句;所述限流控制条件包括是否包括大数据量表格;
根据所述限流控制条件反馈查询语句执行结果至所述客户端。
进一步地,所述从客户端接收查询语句执行请求,并将所述查询语句执行请求发送至数据库服务器,包括:
在持久层写入限流线程变量;
利用所述限流线程变量,将Connection对象包装为ConnectinProxy对象;
利用所述ConnectinProxy对象接收所述查询语句执行请求,并将所述查询语句执行请求发送至数据库服务器。
进一步地,所述解析配置文件,并将预设的限流控制条件映射至对应的查询语句,包括:
解析所述配置文件,得到所述限流控制条件;
根据所述限流控制条件判断所述查询语句是否包括大数据量表格;
若是,将所述查询语句对应的大表标志位存入所述限流线程变量中。
进一步地,所述根据所述限流控制条件反馈查询语句执行结果至所述客户端,包括:
若所述查询语句执行结果所包含的结果数量满足所述限流控制条件,则反馈正确查询语句执行结果至所述客户端;
否则,反馈报错查询语句执行结果至所述客户端。
第二方面,本申请提供一种基于JDBC代理模式的限流装置,包括:
查询请求转发单元,用于从客户端接收查询语句执行请求,并将所述查询语句执行请求发送至数据库服务器;
限流条件映射单元,用于解析配置文件,并将预设的限流控制条件映射至对应的查询语句;所述限流控制条件包括是否包括大数据量表格;
查询结果反馈单元,用于根据所述限流控制条件反馈查询语句执行结果至所述客户端。
进一步地,所述查询请求转发单元,包括:
线程变量写入模块,用于在持久层写入限流线程变量;
对象包装模块,用于利用所述限流线程变量,将Connection对象包装为ConnectinProxy对象;
查询请求转发模块,用于利用所述ConnectinProxy对象接收所述查询语句执行请求,并将所述查询语句执行请求发送至数据库服务器。
进一步地,所述限流条件映射单元,包括:
配置文件解析模块,用于解析所述配置文件,得到所述限流控制条件;
控制条件判断模块,用于根据所述限流控制条件判断所述查询语句是否包括大数据量表格;
标志存入模块,用于当包括所述大数据量表格时,将所述查询语句对应的大表标志位存入所述限流线程变量中。
进一步地,所述查询结果反馈单元,包括:
正确反馈模块,用于当所述查询语句执行结果所包含的结果数量满足所述限流控制条件时,则反馈正确查询语句执行结果至所述客户端;
错误反馈模块,用于当所述查询语句执行结果所包含的结果数量不满足所述限流控制条件时,反馈报错查询语句执行结果至所述客户端。
第三方面,本申请提供一种电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述基于JDBC代理模式的限流方法的步骤。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述基于JDBC代理模式的限流方法的步骤。
第五方面,本申请提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现所述基于JDBC代理模式的限流方法的步骤。
针对现有技术中的问题,本申请提供的基于JDBC代理模式的限流方法及装置,能够为客户端提供灵活的配置方法,多种限流策略,无倾入且方便地为数据库服务器提供限流措施,从而避免各种原因导致的返回数据集过大,进而导致内存溢出,程序崩溃的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中基于JDBC代理模式的限流方法的流程图;
图2为本申请实施例中查询语句执行请求发送的流程图;
图3为本申请实施例中映射至对应的查询语句的流程图;
图4为本申请实施例中反馈查询语句执行结果的流程图;
图5为本申请实施例中基于JDBC代理模式的限流装置的结构图;
图6为本申请实施例中查询请求转发单元的结构图;
图7为本申请实施例中限流条件映射单元的结构图;
图8为本申请实施例中查询结果反馈单元的结构图;
图9为本申请实施例中功能结构示意图;
图10为本申请实施例中总流程示意图;
图11为本申请实施例中的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请提供的基于JDBC代理模式的限流方法及装置,可用于金融领域,也可用于除金融领域之外的任意领域,本申请提供的基于JDBC代理模式的限流方法及装置的应用领域不做限定。
本申请技术方案中对数据的获取、存储、使用及处理等均符合国家法律法规的相关规定。
为了防止JDBC返回的记录集过大,导致Java应用下的数据库服务器内存溢出,进而导致程序崩溃,本申请实施例通过创建JDBC中的ResultSet代理,由代理监控应用层访问的记录条数。当访问的记录数超过应用设置的阈值时,将剩下的记录忽略处理,并记录警告信息。其中,JDBC是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC代理的角色是,客户端访问JDBC代理,代理通过JDBC来访问数据库。
为了更好地理解本申请实施例,首先阐述如下概念:
第一,JDBC的接口规范及代理模式。其代理对象作为用户和目标对象的中介,ResultSet代理实施记录数的跟踪和控制。
第二,本申请实施例中的策略模式。根据策略来进行结果集的限流。例如,在本申请实施例中,提供了至少三种策略模式:默认策略模式(具体参见后续阐述)、根据表的策略模式及根据具体SQL语句分别进行限流的策略模式。其中,针对大表的限流策略,需要对各SQL语句进行解析,并提取出其所对应的表(Table)来,另外,SQL解析结果需要存入缓存中(避免重复解析导致性能的降低)。针对具体SQL语句的限流,需要扩展持久层将SQL语句(ID号)存入线程变量,后续,ResultSet代理拿到SQL语句(ID号)再进行有针对性的限流控制。
按照功能模块来讲,参见图9。
①配置模块
其中,配置模板告诉应用采用哪一种策略进行限流。
②策略模块
③代理模块
代理模块:分别代理JDBC的各类接口,相当于在用户和目标对象中间,将前面的各类策略按插进去,从而达到透明地限流作用。
从实现的整体流程上讲,参见图10,可以分为如下步骤:
其中,总体步骤如下:
第一步:分别创建connection、statemnet、resultset的代理对象。
第二步:代理对象根据限流策略,识别出需要进行限流的具体的SQL和最大记录数。
第三步:代理对象在通过JDBC访问数据库时,根据返回的数据包实时统计SQL返回的记录条数,同时监控记录是否超过最大记录数。
细分步骤为:
1在持久层将sqlid写入线程变量(针对按sql限流的场景)
2在数据源获得connection对象时,同时将其包装成connectinProxy对象
3connectinProxy初始化时,解析配置文件,获得对应的限流策略信息
4在connection的createStatement方法,prepareStatement方法,prepareCall方法分别创建对应的代理对象
5在prepareStatement的executeQuery方法里创建resultsetProxy对象,并初始化记录数为0
如限流策略为大表策略?进入第6,7步,否则进入第8步
6解析sql语句,解析结果存入缓存
7解析出的表名,如在按表限流的名单类,将大表标志位存入线程变量
8在resultsetProxy的next()方法里,对记录数进行自增操作
判断策略类型?如为大表策略,进入第9步;如sql策略进入第10步,默认策略进入第11步
9检查当前运行的sql里的表,是否在大表限流的名单内?
如命中进入第11步
10检查当前运行的sql,是否在sql限流名单内?
如命中进入第11步
11如果记录数超过设置的阈值,则控制resultset的next方法返回false,即无记录;并记录警告信息。
一实施例中,参见图1,为了能够基于限流控制条件向客户端反馈查询语句执行结果,保护数据库服务器的系统稳定,本申请提供一种基于JDBC代理模式的限流方法,包括:
S101:从客户端接收查询语句执行请求,并将所述查询语句执行请求发送至数据库服务器。
具体地,参见图2,所述从客户端接收查询语句执行请求,并将所述查询语句执行请求发送至数据库服务器,包括:在持久层写入限流线程变量(S201);利用所述限流线程变量,将Connection对象包装为ConnectinProxy对象(S202);利用所述ConnectinProxy对象接收所述查询语句执行请求,并将所述查询语句执行请求发送至数据库服务器(S203)。
可以理解的是,对于限流策略为SQL的,需要将SQLid从持久层传入代理层和JDBC层。这样才能保证代理层结合策略,以便触发限流动作。接下来,写入SQLid至线程变量后,同一个线程的对象,包括代理层都可以访问到该SQLid。最后,代理层在应用程序和JDBC之间,所有的请求或返回结果都需要经过代理层处理,从而可以完成限流控制。
S102:解析配置文件,并将预设的限流控制条件映射至对应的查询语句;所述限流控制条件包括是否包括大数据量表格。
具体地,参见图3,所述解析配置文件,并将预设的限流控制条件映射至对应的查询语句,包括:解析所述配置文件,得到所述限流控制条件(S301);根据所述限流控制条件判断所述查询语句是否包括大数据量表格(S302);若是,将所述查询语句对应的大表标志位存入所述限流线程变量中(S303)。
可以理解的是,解析配置文件中的限流策略,包括SQL级,表级和默认,限流策略的优先级为SQL级>表级>默认;对于按表策略的,进一步解析具体SQL,并将该SQL涉及的表与该策略对应的表进行匹配;将匹配结果写入线程变量中,代理层通过JDBC访问数据库时,根据匹配结果决定是否进行限流控制。
S103:根据所述限流控制条件反馈查询语句执行结果至所述客户端。
具体地,参见图4,所述根据所述限流控制条件反馈查询语句执行结果至所述客户端,包括:若所述查询语句执行结果所包含的结果数量满足所述限流控制条件,则反馈正确查询语句执行结果至所述客户端(S401);否则,反馈报错查询语句执行结果至所述客户端(S402)。
可以理解的是,以生成客户交易表举例,某个机构下客户交易平时为1万。程序在生成报表过程中未进行分页处理,而是一次性将1万笔交易查询出来。如果突然某一天交易量超过1万,达到10万甚至更多。如果设置限流最大记录为1万,本发明可以拦截1万后面的记录,仅返回1万记录给客户端,同时反馈警告或错误信息。从而保护应用的内存不被冲垮。
从上述描述可知,本申请提供的基于JDBC代理模式的限流方法及装置,能够为客户端提供灵活的配置方法,多种限流策略,无倾入且方便地为数据库服务器提供限流措施,从而避免各种原因导致的返回数据集过大,进而导致内存溢出,程序崩溃的问题。
基于同一发明构思,本申请实施例还提供了一种基于JDBC代理模式的限流装置,可以用于实现上述实施例所描述的方法,如下面的实施例所述。由于基于JDBC代理模式的限流装置解决问题的原理与基于JDBC代理模式的限流方法相似,因此基于JDBC代理模式的限流装置的实施可以参见基于软件性能基准确定方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
一实施例中,参见图5,为了能够基于限流控制条件向客户端反馈查询语句执行结果,保护数据库服务器的系统稳定,本申请提供一种基于JDBC代理模式的限流装置,包括:查询请求转发单元501、限流条件映射单元502及查询结果反馈单元503。
查询请求转发单元501,用于从客户端接收查询语句执行请求,并将所述查询语句执行请求发送至数据库服务器;
限流条件映射单元502,用于解析配置文件,并将预设的限流控制条件映射至对应的查询语句;所述限流控制条件包括是否包括大数据量表格;
查询结果反馈单元503,用于根据所述限流控制条件反馈查询语句执行结果至所述客户端。
一实施例中,参见图6,所述查询请求转发单元501,包括:线程变量写入模块601、对象包装模块602及查询请求转发模块603。
线程变量写入模块601,用于在持久层写入限流线程变量;
对象包装模块602,用于利用所述限流线程变量,将Connection对象包装为ConnectinProxy对象;
查询请求转发模块603,用于利用所述ConnectinProxy对象接收所述查询语句执行请求,并将所述查询语句执行请求发送至数据库服务器。
一实施例中,参见图7,所述限流条件映射单元502,包括:配置文件解析模块701、控制条件判断模块702及标志存入模块703。
配置文件解析模块701,用于解析所述配置文件,得到所述限流控制条件;
控制条件判断模块702,用于根据所述限流控制条件判断所述查询语句是否包括大数据量表格;
标志存入模块703,用于当包括所述大数据量表格时,将所述查询语句对应的大表标志位存入所述限流线程变量中。
一实施例中,参见图8,所述查询结果反馈单元503,包括:正确反馈模块801及错误反馈模块802。
正确反馈模块801,用于当所述查询语句执行结果所包含的结果数量满足所述限流控制条件时,则反馈正确查询语句执行结果至所述客户端;
错误反馈模块802,用于当所述查询语句执行结果所包含的结果数量不满足所述限流控制条件时,反馈报错查询语句执行结果至所述客户端。
从硬件层面来说,为了能够基于限流控制条件向客户端反馈查询语句执行结果,保护数据库服务器的系统稳定,本申请提供一种用于实现所述基于JDBC代理模式的限流方法中的全部或部分内容的电子设备的实施例,所述电子设备具体包含有如下内容:
处理器(Processor)、存储器(Memory)、通讯接口(Communications Interface)和总线;其中,所述处理器、存储器、通讯接口通过所述总线完成相互间的通讯;所述通讯接口用于实现所述基于JDBC代理模式的限流装置与核心业务系统、用户终端以及相关数据库等相关设备之间的信息传输;该逻辑控制器可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该逻辑控制器可以参照实施例中的基于JDBC代理模式的限流方法的实施例,以及基于JDBC代理模式的限流装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
可以理解的是,所述用户终端可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(PDA)、车载设备、智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表、智能手环等。
在实际应用中,基于JDBC代理模式的限流方法的部分可以在如上述内容所述的电子设备侧执行,也可以所有的操作都在所述客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器。
上述的客户端设备可以具有通讯模块(即通讯单元),可以与远程的服务器进行通讯连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通讯链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
图11为本申请实施例的电子设备9600的系统构成的示意框图。如图11所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图11是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
一实施例中,基于JDBC代理模式的限流方法功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:
S101:从客户端接收查询语句执行请求,并将所述查询语句执行请求发送至数据库服务器;
S102:解析配置文件,并将预设的限流控制条件映射至对应的查询语句;所述限流控制条件包括是否包括大数据量表格;
S103:根据所述限流控制条件反馈查询语句执行结果至所述客户端。
从上述描述可知,本申请提供的基于JDBC代理模式的限流方法及装置,能够为客户端提供灵活的配置方法,多种限流策略,无倾入且方便地为数据库服务器提供限流措施,从而避免各种原因导致的返回数据集过大,进而导致内存溢出,程序崩溃的问题。
在另一个实施方式中,基于JDBC代理模式的限流装置可以与中央处理器9100分开配置,例如可以将数据复合传输装置基于JDBC代理模式的限流装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现基于JDBC代理模式的限流方法的功能。
如图11所示,该电子设备9600还可以包括:通讯模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图11中所示的所有部件;此外,电子设备9600还可以包括图11中没有示出的部件,可以参考现有技术。
如图11所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通讯功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通讯模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通讯模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通讯终端的情况相同。
基于不同的通讯技术,在同一电子设备中,可以设置有多个通讯模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通讯模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
本申请的实施例还提供能够实现上述实施例中的执行主体为服务器或客户端的基于JDBC代理模式的限流方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的执行主体为服务器或客户端的基于JDBC代理模式的限流方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
S101:从客户端接收查询语句执行请求,并将所述查询语句执行请求发送至数据库服务器;
S102:解析配置文件,并将预设的限流控制条件映射至对应的查询语句;所述限流控制条件包括是否包括大数据量表格;
S103:根据所述限流控制条件反馈查询语句执行结果至所述客户端。
从上述描述可知,本申请提供的基于JDBC代理模式的限流方法及装置,能够为客户端提供灵活的配置方法,多种限流策略,无倾入且方便地为数据库服务器提供限流措施,从而避免各种原因导致的返回数据集过大,进而导致内存溢出,程序崩溃的问题。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (11)
1.一种基于JDBC代理模式的限流方法,其特征在于,包括:
从客户端接收查询语句执行请求,并将所述查询语句执行请求发送至数据库服务器;
解析配置文件,并将预设的限流控制条件映射至对应的查询语句;所述限流控制条件包括是否包括大数据量表格;
根据所述限流控制条件反馈查询语句执行结果至所述客户端。
2.根据权利要求1所述的基于JDBC代理模式的限流方法,其特征在于,所述从客户端接收查询语句执行请求,并将所述查询语句执行请求发送至数据库服务器,包括:
在持久层写入限流线程变量;
利用所述限流线程变量,将Connection对象包装为ConnectinProxy对象;
利用所述ConnectinProxy对象接收所述查询语句执行请求,并将所述查询语句执行请求发送至数据库服务器。
3.根据权利要求2所述的基于JDBC代理模式的限流方法,其特征在于,所述解析配置文件,并将预设的限流控制条件映射至对应的查询语句,包括:
解析所述配置文件,得到所述限流控制条件;
根据所述限流控制条件判断所述查询语句是否包括大数据量表格;
若是,将所述查询语句对应的大表标志位存入所述限流线程变量中。
4.根据权利要求1所述的基于JDBC代理模式的限流方法,其特征在于,所述根据所述限流控制条件反馈查询语句执行结果至所述客户端,包括:
若所述查询语句执行结果所包含的结果数量满足所述限流控制条件,则反馈正确查询语句执行结果至所述客户端;
否则,反馈报错查询语句执行结果至所述客户端。
5.一种基于JDBC代理模式的限流装置,其特征在于,包括:
查询请求转发单元,用于从客户端接收查询语句执行请求,并将所述查询语句执行请求发送至数据库服务器;
限流条件映射单元,用于解析配置文件,并将预设的限流控制条件映射至对应的查询语句;所述限流控制条件包括是否包括大数据量表格;
查询结果反馈单元,用于根据所述限流控制条件反馈查询语句执行结果至所述客户端。
6.根据权利要求5所述的基于JDBC代理模式的限流装置,其特征在于,所述查询请求转发单元,包括:
线程变量写入模块,用于在持久层写入限流线程变量;
对象包装模块,用于利用所述限流线程变量,将Connection对象包装为ConnectinProxy对象;
查询请求转发模块,用于利用所述ConnectinProxy对象接收所述查询语句执行请求,并将所述查询语句执行请求发送至数据库服务器。
7.根据权利要求6所述的基于JDBC代理模式的限流装置,其特征在于,所述限流条件映射单元,包括:
配置文件解析模块,用于解析所述配置文件,得到所述限流控制条件;
控制条件判断模块,用于根据所述限流控制条件判断所述查询语句是否包括大数据量表格;
标志存入模块,用于当包括所述大数据量表格时,将所述查询语句对应的大表标志位存入所述限流线程变量中。
8.根据权利要求5所述的基于JDBC代理模式的限流装置,其特征在于,所述查询结果反馈单元,包括:
正确反馈模块,用于当所述查询语句执行结果所包含的结果数量满足所述限流控制条件时,则反馈正确查询语句执行结果至所述客户端;
错误反馈模块,用于当所述查询语句执行结果所包含的结果数量不满足所述限流控制条件时,反馈报错查询语句执行结果至所述客户端。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至4任一项所述的基于JDBC代理模式的限流方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至4任一项所述的基于JDBC代理模式的限流方法的步骤。
11.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至4任一项所述的基于JDBC代理模式的限流方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211379467.2A CN115757486A (zh) | 2022-11-04 | 2022-11-04 | 一种基于jdbc代理模式的限流方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211379467.2A CN115757486A (zh) | 2022-11-04 | 2022-11-04 | 一种基于jdbc代理模式的限流方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115757486A true CN115757486A (zh) | 2023-03-07 |
Family
ID=85356552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211379467.2A Pending CN115757486A (zh) | 2022-11-04 | 2022-11-04 | 一种基于jdbc代理模式的限流方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115757486A (zh) |
-
2022
- 2022-11-04 CN CN202211379467.2A patent/CN115757486A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109359118B (zh) | 一种数据写入方法及装置 | |
CN102426523A (zh) | 多维对象 | |
CN111369247A (zh) | 跨行交易数据处理方法及装置 | |
CN109525647B (zh) | 消息推送徽章值控制方法、电子装置及存储介质 | |
CN103020146A (zh) | 数据处理方法及设备 | |
WO2015074565A1 (en) | Method and device for processing application of mobile terminal | |
CN107943846B (zh) | 数据处理方法、装置及电子设备 | |
CN115391356A (zh) | 数据处理方法、装置、设备、介质和计算机程序产品 | |
CN110222046B (zh) | 列表数据的处理方法、装置、服务器和存储介质 | |
CN112035676B (zh) | 用户操作行为知识图谱构建方法及装置 | |
CN114153856A (zh) | 主机数据双写方法及装置 | |
CN115757486A (zh) | 一种基于jdbc代理模式的限流方法及装置 | |
CN110297945B (zh) | 基于xbrl的数据信息处理方法及系统 | |
CN116233254A (zh) | 业务切流方法、装置、计算机设备和存储介质 | |
CN114285657B (zh) | 防火墙安全策略变更验证方法及装置 | |
EP3748493A1 (en) | Method and device for downloading installation-free application | |
CN115495519A (zh) | 报表数据加工方法及装置 | |
CN115729951A (zh) | 数据查询方法、系统、设备及计算机可读存储介质 | |
CN115292415A (zh) | 一种数据库访问方法及装置 | |
CN113434423A (zh) | 接口测试方法及装置 | |
CN113419957A (zh) | 基于规则的大数据离线批处理性能容量扫描方法及装置 | |
CN111460037A (zh) | 金融数据查询方法及装置 | |
CN107402715B (zh) | 数据搬移的方法、装置、存储器及终端 | |
CN113535721B (zh) | 一种数据写入方法及装置 | |
CN112035557B (zh) | 交易日志报表展示方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |