请求处理方法、装置、设备及计算机可读存储介质与流程

文档序号:29159612发布日期:2022-03-08 23:23阅读:60来源:国知局
请求处理方法、装置、设备及计算机可读存储介质与流程

1.本公开涉及计算机技术领域,尤其涉及一种请求处理方法、装置、设备及计算机可读存储介质。


背景技术:

2.随着计算机技术的不断发展,数据库的应用日益广泛,因此数据库性能表现的重要性也越发的凸显。
3.通常情况下,客户端和数据库服务器之间可以建立大量的连接。进一步,数据库服务器可以通过进程或线程为每个连接分配资源,从而处理来自客户端的请求。
4.但是,在数据库服务器的繁忙程度变大的情况下,会造成数据库服务器后续接收到的请求需要排队等待处理,从而导致一些重要的请求不能得到及时处理。


技术实现要素:

5.为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种请求处理方法、装置、设备及计算机可读存储介质,以使得重要的数据库请求无需排队等待,从而保证重要的数据库请求及时被处理。
6.第一方面,本公开实施例提供一种请求处理方法,所述方法包括:
7.接收终端发送的连接请求,所述连接请求包括第一参数,所述第一参数用于表示所述连接请求的优先级;
8.根据所述连接请求与所述终端建立连接;
9.接收所述终端发送的第一查询请求,所述第一查询请求包括第二参数,所述第二参数用于表示所述第一查询请求的优先级;
10.在对所述第一查询请求进行处理的过程中,若得到所述第一查询请求对应的预设数量的查询结果,则确定是否接收到第二查询请求,所述第二查询请求的优先级比所述第一查询请求的优先级高;
11.若接收到所述第二查询请求,则对所述第二查询请求处理结束后继续处理所述第一查询请求。
12.第二方面,本公开实施例提供一种请求处理方法,所述方法包括:
13.向服务器发送连接请求,所述连接请求包括第一参数,所述第一参数用于表示所述连接请求的优先级;
14.与所述服务器建立连接后,向所述服务器发送第一查询请求,所述第一查询请求包括第二参数,所述第二参数用于表示所述第一查询请求的优先级;
15.所述服务器用于:在对所述第一查询请求进行处理的过程中,若得到所述第一查询请求对应的预设数量的查询结果,则确定是否接收到第二查询请求,所述第二查询请求的优先级比所述第一查询请求的优先级高;若接收到所述第二查询请求,则对所述第二查询请求处理结束后继续处理所述第一查询请求。
16.第三方面,本公开实施例提供一种请求处理装置,包括:
17.接收模块,用于接收终端发送的连接请求,所述连接请求包括第一参数,所述第一参数用于表示所述连接请求的优先级;
18.连接建立模块,用于根据所述连接请求与所述终端建立连接;
19.所述接收模块还用于:接收所述终端发送的第一查询请求,所述第一查询请求包括第二参数,所述第二参数用于表示所述第一查询请求的优先级;
20.处理模块,用于对所述第一查询请求进行处理;
21.确定模块,用于在对所述第一查询请求进行处理的过程中,若得到所述第一查询请求对应的预设数量的查询结果,则确定是否接收到第二查询请求,所述第二查询请求的优先级比所述第一查询请求的优先级高;
22.所述处理模块还用于:若接收到所述第二查询请求,则对所述第二查询请求处理结束后继续处理所述第一查询请求。
23.第四方面,本公开实施例提供一种请求处理装置,包括:
24.第一发送模块,用于向服务器发送连接请求,所述连接请求包括第一参数,所述第一参数用于表示所述连接请求的优先级;
25.第二发送模块,用于与所述服务器建立连接后,向所述服务器发送第一查询请求,所述第一查询请求包括第二参数,所述第二参数用于表示所述第一查询请求的优先级;
26.所述服务器用于:在对所述第一查询请求进行处理的过程中,若得到所述第一查询请求对应的预设数量的查询结果,则确定是否接收到第二查询请求,所述第二查询请求的优先级比所述第一查询请求的优先级高;若接收到所述第二查询请求,则对所述第二查询请求处理结束后继续处理所述第一查询请求。
27.第五方面,本公开实施例提供一种电子设备,包括:
28.存储器;
29.处理器;以及
30.计算机程序;
31.其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如第一方面或第二方面所述的方法。
32.第六方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现如第一方面或第二方面所述的方法。
33.第七方面,本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序或指令,该计算机程序或指令被处理器执行时实现如上所述的请求处理方法。
34.本公开实施例提供的请求处理方法、装置、设备及计算机可读存储介质,通过接收终端发送的连接请求,所述连接请求包括第一参数,所述第一参数用于表示所述连接请求的优先级,根据所述连接请求与所述终端建立连接。进一步,接收所述终端发送的第一查询请求,所述第一查询请求包括第二参数,所述第二参数用于表示所述第一查询请求的优先级。另外,在对所述第一查询请求进行处理的过程中,若得到所述第一查询请求对应的预设数量的查询结果,则确定是否接收到第二查询请求,所述第二查询请求的优先级比所述第一查询请求的优先级高,若接收到所述第二查询请求,则对所述第二查询请求处理结束后继续处理所述第一查询请求。由于本公开在终端向服务器发送的连接请求中添加了第一参
数,所述第一参数用于表示所述连接请求的优先级,可以让有紧急请求处理的终端优先与服务器建立连接。并且本公开在终端向服务器发送的所述第一查询请求中添加了第二参数,所述第二参数用于表示所述第一查询请求的优先级,在对所述第一查询请求进行处理的过程中,若接收到更高优先级的所述第二查询请求,则先对所述第二查询请求进行处理,等所述第二查询请求处理结束后,继续处理所述第一查询请求,使得重要的数据库请求无需排队等待,从而保证重要的数据库请求及时被处理。
附图说明
35.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
36.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
37.图1为本公开实施例提供的请求处理方法流程图;
38.图2为本公开实施例提供的一种应用场景的示意图;
39.图3为本公开实施例提供的请求处理方法流程图;
40.图4为本公开另一实施例提供的请求处理方法流程图;
41.图5为本公开实施例提供的请求处理装置的结构示意图;
42.图6为本公开实施例提供的请求处理装置的结构示意图;
43.图7为本公开实施例提供的数据库服务器的结构示意图;
44.图8为本公开实施例提供的终端的结构示意图。
具体实施方式
45.为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
46.在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
47.随着计算机技术的不断发展,数据库的应用日益广泛,因此数据库性能表现的重要性也越发的凸显。
48.通常情况下,客户端和数据库服务器之间可以建立大量的连接。进一步,数据库服务器可以通过进程或线程为每个连接分配资源,从而处理来自客户端的请求。
49.但是,在数据库服务器的繁忙程度变大的情况下,会造成数据库服务器后续接收到的请求需要排队等待处理,从而导致一些重要的请求不能得到及时处理。针对该问题,本公开实施例提供了一种请求处理方法,下面结合具体的实施例对该方法进行介绍。
50.图1为本公开实施例提供的请求处理方法流程图。该方法可以应用于图2所示的应用场景,该应用场景中包括服务器21和终端22,终端22具体可以是智能手机、掌上电脑、平板电脑、带显示屏的可穿戴设备、台式机、笔记本电脑、一体机、智能家居设备等。可以理解
的是,本公开实施例提供的请求处理方法还可以应用在其他场景中。
51.下面结合图2所示的应用场景,对图1所示的请求处理方法进行介绍,具体的,该方法可以由图2所示的服务器21来执行。该方法包括的具体步骤如下:
52.s101、接收终端发送的连接请求,所述连接请求包括第一参数,所述第一参数用于表示所述连接请求的优先级。
53.如图2所示的终端22向服务器21发送连接请求,所述连接请求包括第一参数,所述第一参数用于表示所述连接请求的优先级,服务器21接收终端22发来的连接请求。
54.可选的,所述第一参数可以为枚举类型如高、中、低等,也可以为数字如1,2,3等,不同的数字表示不同的优先级。
55.s102、根据所述连接请求与所述终端建立连接。
56.在接收到终端22发来的连接请求之后,服务器21根据所述连接请求与所述终端22建立连接。
57.s103、接收所述终端发送的第一查询请求,所述第一查询请求包括第二参数,所述第二参数用于表示所述第一查询请求的优先级。
58.当服务器21与所述终端22建立连接之后,终端22向服务器21发送第一查询请求,所述第一查询请求包括第二参数,所述第二参数用于表示所述第一查询请求的优先级,服务器21接收终端22向服务器21发送的第一查询请求。
59.可选的,所述第二参数可以在所述查询请求的注释中通过定义提示语句(hint)的方式设置所述查询请求的优先级。例如,在查询请求语句(select*from)的注释中加入hint,所述第二参数的语法为优先级(priority)(级别(emergency)),所述第一查询请求包括第二参数,即第一查询语句为select/*+priority(emergency)*/*from,其中,hint语句为/*+priority(emergency)*/,emergency表示优先级的级别,优先级可以为emergency,high,medium,low等枚举值,也可以为数值1,2,3等,在此不做限定。
60.s104、在对所述第一查询请求进行处理的过程中,若得到所述第一查询请求对应的预设数量的查询结果,则确定是否接收到第二查询请求,所述第二查询请求的优先级比所述第一查询请求的优先级高。
61.服务器21接收到终端22发来的第一查询请求之后,服务器21需要对所述第一查询请求进行处理,在对所述第一查询请求处理的过程中,服务器21会得到很多条查询结果,每收到所述第一查询请求对应的预设数量的查询结果,就判断一下是否接收到更高优先级的第二查询请求。若接收到所述第二查询请求,则执行s105;若没有收到所述第二查询请求,则继续处理所述第一查询请求。
62.s105、若接收到所述第二查询请求,则对所述第二查询请求处理结束后继续处理所述第一查询请求。
63.如果服务器21接收到所述第二查询请求,则先对所述第二查询请求进行处理,等所述第二查询请求处理结束后,继续处理所述第一查询请求。
64.本公开实施例通过接收终端发送的连接请求,所述连接请求包括第一参数,所述第一参数用于表示所述连接请求的优先级,根据所述连接请求与所述终端建立连接。进一步,接收所述终端发送的第一查询请求,所述第一查询请求包括第二参数,所述第二参数用于表示所述第一查询请求的优先级。另外,在对所述第一查询请求进行处理的过程中,若得
到所述第一查询请求对应的预设数量的查询结果,则确定是否接收到第二查询请求,所述第二查询请求的优先级比所述第一查询请求的优先级高,若接收到所述第二查询请求,则对所述第二查询请求处理结束后继续处理所述第一查询请求。由于本公开在终端向服务器发送的连接请求中添加了第一参数,所述第一参数用于表示所述连接请求的优先级,可以让有紧急请求处理的终端优先与服务器建立连接。并且本公开在终端向服务器发送的所述第一查询请求中添加了第二参数,所述第二参数用于表示所述第一查询请求的优先级,在对所述第一查询请求进行处理的过程中,若接收到更高优先级的所述第二查询请求,则先对所述第二查询请求进行处理,等所述第二查询请求处理结束后,继续处理所述第一查询请求,使得重要的数据库请求无需排队等待,从而保证重要的数据库请求及时被处理。
65.本实施例提供的请求处理方法可以具体用在以下场景中。例如,当一个数据库服务器同时处理几十个查询请求语句来产生报表,其中,查询请求语句具体可以是结构化查询语言(structured query language,sql)。而每个sql语句运行的时间可能是几个小时。此时,中央处理器(central processing unit,cpu)资源都会被占满,当再处理新的请求服务器的响应速度变慢。这种情况下,执行一个简单的sql语句,用户会看到原本不到1秒的sql语句需要等待几十秒甚至几分钟的时间才能返回处理结果。而用本公开的请求处理方法,可以设置所述几十个查询请求语句为低优先级,所述简单的sql语句为高优先级,这样,服务器会优先去处理高优先级的请求,所述简单的sql语句得到优先处理,用户无需等待,提高了用户的体验。
66.本实施例提供的请求处理方法还可以具体用在以下场景中。例如,在数据库集群管理系统中,集群状态监控软件需要周期性建立一个短连接来查看数据库系统的状态。多个数据库服务器分别记为数据库服务器a1

数据库服务器an,a1

an构成数据库集群。数据库集群管理系统中安装有集群状态监控软件。集群状态监控软件会周期性的向a1

an分别发送短连接请求,以便查看a1

an的状态。以a1为例,当a1在进行压力测试时,a1会处理大量的连接请求,此时,如果集群状态监控软件给a1发一个短连接请求,就会导致该短连接请求在a1中需要排队等待,即a1不能及时马上处理该短连接请求。如果该短连接请求在a1中等待超时,就会导致集群状态监控软件判定a1出现了故障。而本实施例提供的请求处理方法可以避免这种误判情况的发生。
67.在上述实施例的基础上,根据所述连接请求与所述终端建立连接,包括:建立第一进程,所述第一进程用于处理所述连接请求;将所述第一进程绑定到与所述连接请求的优先级匹配的中央处理器内核上。
68.如图2所示服务器21在接收到终端22发来的连接请求之后,服务器21建立第一进程,所述第一进程用于处理所述连接请求,然后服务器21将所述第一进程绑定到与所述连接请求的优先级匹配的中央处理器内核上。例如一共有十个cpu,分配2个cpu处理高优先级的请求,8个cpu处理低优先级的请求。
69.可选的,将所述第一进程绑定到与所述连接请求的优先级匹配的中央处理器内核上,包括:若与所述连接请求的优先级匹配的中央处理器内核的使用率小于第一阈值,则将所述第一进程绑定到与所述连接请求的优先级匹配的中央处理器内核上。
70.例如,服务器21将所述中央处理器内核的使用率和第一阈值进行比较,其中,第一阈值可以是预设的。如果与所述连接请求的优先级匹配的中央处理器内核的使用率小于第
一阈值,则将所述第一进程绑定到与所述连接请求的优先级匹配的中央处理器内核上。
71.可选的,所述方法还包括:若与所述连接请求的优先级匹配的中央处理器内核的使用率大于或等于第二阈值,则将所述第一进程绑定到其他优先级对应的中央处理器内核上。
72.例如,服务器21将所述中央处理器内核的使用率和第二阈值进行比较,该第二阈值可以是预设的。若与所述连接请求的优先级匹配的中央处理器内核的使用率大于或等于第二阈值,则将所述第一进程绑定到其他优先级对应的中央处理器内核上。数据库服务器有一个资源平衡机制,当一种优先级下的cpu过于繁忙,可以动态的绑定为其他优先级预留的cpu。
73.可选的,其他优先级既可以是高优先级,也可以是低优先级。当高优先级下的cpu过于繁忙,可以动态的绑定为低优先级预留的cpu;当低优先级下的cpu过于繁忙,可以动态的绑定为高优先级的预留的cpu,但是必须预留一个或两个cpu始终绑定为高优先级。
74.本公开实施例通过根据所述连接请求与所述终端建立连接,建立第一进程,所述第一进程用于处理所述连接请求,将所述第一进程绑定到与所述连接请求的优先级匹配的中央处理器内核上,若与所述连接请求的优先级匹配的中央处理器内核的使用率小于第一阈值,则将所述第一进程绑定到与所述连接请求的优先级匹配的中央处理器内核上;若与所述连接请求的优先级匹配的中央处理器内核的使用率大于或等于第二阈值,则将所述第一进程绑定到其他优先级对应的中央处理器内核上。当数据库服务器收到来自终端的连接请求时,将为终端提供服务的进程绑定到对应优先级的cpu上。通过这种方式,保证即使在系统繁忙的情况下,仍然有备用的cpu应对优先级更高的紧急请求,从而使得紧急请求得到及时处理。
75.图3为本公开另一实施例提供的请求处理方法流程图,如图3所示,该方法包括如下几个步骤:
76.s301、接收终端发送的连接请求,所述连接请求包括第一参数,所述第一参数用于表示所述连接请求的优先级。
77.具体的,s301和s101的实现过程和原理一致,此处不再赘述。
78.s302、根据所述连接请求与所述终端建立连接。
79.具体的,s302和s102的实现过程和原理一致,此处不再赘述。
80.s303、接收所述终端发送的第一查询请求,所述第一查询请求包括第二参数,所述第二参数用于表示所述第一查询请求的优先级。
81.具体的,s303和s103的实现过程和原理一致,此处不再赘述。
82.s304、对所述第一查询请求进行解析,将字符串形式的所述第一查询请求转换为带有语法结构信息的内存数据结构。
83.如图2所示的服务器21对所述第一查询请求进行处理。具体的,服务器21通过解析器对所述第一查询请求进行解析,从而将字符串形式的所述第一查询请求转换成带有语法结构信息的内存数据结构。
84.s305、根据带有语法结构信息的内存数据结构,确定所述第一查询请求对应的执行方案。
85.例如,服务器21可以通过优化器确定所述第一查询请求对应的执行方案。具体的,
优化器需要综合考虑所述第一查询请求的语义、对象数据特征、对象物理分布等多方面因素,并解决访问路径选择、连接顺序选择、连接算法选择、分布式计划生成等多个核心问题,最终确定所述第一查询请求对应的执行方案。
86.s306、执行所述第一查询请求对应的执行方案并返回所述第一查询请求对应的预设数量的查询结果。
87.服务器21通过执行器执行对应的执行方案,并返回所述第一查询请求对应的预设数量的查询结果。
88.s307、判断是否已向客户端返回所述第一查询请求所有的查询结果,若是,则执行s311,否则执行s308。
89.判断是否已返回所述第一查询请求所有的查询结果,如果所有查询结果均已返回,则执行步骤s311;否则,执行下面步骤s308以及s308之后的步骤。
90.s308、判断是否接收到第二查询请求,所述第二查询请求的优先级比所述第一查询请求的优先级高,若是,则执行s309,否则执行s310。
91.在得到所述第一查询请求对应的预设数量的查询结果之后,判断是否接收到第二查询请求,所述第二查询请求的优先级比所述第一查询请求的优先级高,如果接收到所述第二查询请求,则执行下面步骤s309以及s309之后的步骤;如果没有接收到所述第二查询请求,则执行下面步骤s310以及s310之后的步骤。
92.s309、处理所述第二查询请求。
93.在对所述第一查询请求进行处理的过程中,服务器21接收到所述第二查询请求,服务器21优先对所述第二查询请求进行处理。
94.s310、继续处理所述第一查询请求。
95.服务器21对所述第二查询请求处理结束后继续处理所述第一查询请求。
96.s311、结束。
97.本次请求处理过程结束。
98.本公开实施例通过在对所述第一查询请求进行处理的过程中,若接收到更高优先级的所述第二查询请求,则先对所述第二查询请求进行处理,等所述第二查询请求处理结束后,继续处理所述第一查询请求,使得重要的数据库请求无需排队等待,从而保证重要的数据库请求及时被处理。
99.在上述实施例的基础上,在对所述第一查询请求进行处理的过程中,若得到所述第一查询请求对应的预设数量的查询结果,则确定是否接收到第二查询请求,包括:通过第二进程对所述第一查询请求进行处理,在所述处理过程中,若得到所述第一查询请求对应的预设数量的查询结果,则确定第三进程是否发起进程间通信消息,所述进程间通信消息用于表示所述第三进程识别到所述第二查询请求。
100.如图2所示,服务器21在对所述第一查询请求进行处理时,通过建立第二进程对所述第一查询请求进行处理,在所述处理过程中,如果接收到所述第二查询请求,服务器21建立第三进程对所述第二查询请求进行处理,进一步,第三进程发起进程间通信消息通知其他进程,所述进程间通信消息用于表示所述第三进程识别到所述第二查询请求。
101.相应的,若接收到所述第二查询请求,则对所述第二查询请求处理结束后继续处理所述第一查询请求,包括:若所述第三进程发起进程间通信消息,则将所述第二进程挂
起;当所述第三进程将所述第二查询请求处理结束后,控制所述第二进程继续处理所述第一查询请求。
102.服务器如果接收到所述第二查询请求,则先对所述第二查询请求进行处理,建立第三进程对所述第二查询请求进行处理,并通过第三进程发起进程间通信消息,将所述第二进程挂起,等所述第三进程将所述第二查询请求处理结束之后,控制所述第二进程继续处理所述第一查询请求,即继续返回所述第一查询请求对应的查询结果。
103.本公开实施例通过第二进程对所述第一查询请求进行处理,在所述处理过程中,若得到所述第一查询请求对应的预设数量的查询结果,则确定第三进程是否发起进程间通信消息,所述进程间通信消息用于表示所述第三进程识别到所述第二查询请求。若所述第三进程发起进程间通信消息,则将所述第二进程挂起,当所述第三进程将所述第二查询请求处理结束后,控制所述第二进程继续处理所述第一查询请求。由于发起了进程间通信消息,可以让其他进程优先把资源或者数据文件给高优先级的查询请求使用,进一步使得重要请求得到及时处理。
104.图4为本公开实施例提供的请求处理方法流程图,该方法可以由上述图2所示的终端22来执行。如图4所示,该方法包括如下几个步骤:
105.s401、向服务器发送连接请求,所述连接请求包括第一参数,所述第一参数用于表示所述连接请求的优先级。
106.如图2所示的终端22向服务器21发送连接请求,所述连接请求包括第一参数,所述第一参数用于表示所述连接请求的优先级,在接收到终端22发来的连接请求之后,服务器21根据所述连接请求与所述终端22建立连接。
107.s402、与所述服务器建立连接后,向所述服务器发送第一查询请求,所述第一查询请求包括第二参数,所述第二参数用于表示所述第一查询请求的优先级。
108.终端22与服务器21建立连接后,终端22向服务器21发送第一查询请求,所述第一查询请求包括第二参数,所述第二参数用于表示所述第一查询请求的优先级,服务器21接收终端22向服务器21发送的第一查询请求。
109.所述服务器用于:在对所述第一查询请求进行处理的过程中,若得到所述第一查询请求对应的预设数量的查询结果,则确定是否接收到第二查询请求,所述第二查询请求的优先级比所述第一查询请求的优先级高;若接收到所述第二查询请求,则对所述第二查询请求处理结束后继续处理所述第一查询请求。
110.服务器21接收到终端22发来的第一查询请求之后,服务器21需要对所述第一查询请求进行处理,在对所述第一查询请求处理的过程中,服务器21会得到很多条查询结果,每收到所述第一查询请求对应的预设数量的查询结果,就判断一下是否接收到更高优先级的第二查询请求。如果服务器21接收到所述第二查询请求,则先对所述第二查询请求进行处理,等所述第二查询请求处理结束后,继续处理所述第一查询请求。
111.本公开实施例通过终端向服务器发送连接请求,所述连接请求包括第一参数,所述第一参数用于表示所述连接请求的优先级,与所述服务器建立连接后,终端向所述服务器发送第一查询请求,所述第一查询请求包括第二参数,所述第二参数用于表示所述第一查询请求的优先级。所述服务器用于:在对所述第一查询请求进行处理的过程中,若得到所述第一查询请求对应的预设数量的查询结果,则确定是否接收到第二查询请求,所述第二
查询请求的优先级比所述第一查询请求的优先级高;若接收到所述第二查询请求,则对所述第二查询请求处理结束后继续处理所述第一查询请求。由于本公开在终端向服务器发送的连接请求中添加了第一参数,所述第一参数用于表示所述连接请求的优先级,可以让有紧急请求处理的终端优先与服务器建立连接。并且本公开在终端向服务器发送的所述第一查询请求中添加了第二参数,所述第二参数用于表示所述第一查询请求的优先级,在对所述第一查询请求进行处理的过程中,若接收到更高优先级的所述第二查询请求,则先对所述第二查询请求进行处理,等所述第二查询请求处理结束后,继续处理所述第一查询请求,使得重要的数据库请求无需排队等待,从而保证重要的数据库请求及时被处理。
112.在上述实施例的基础上,向服务器发送连接请求,包括:确定连接池中多个连接建立接口分别对应的优先级;调用所述多个连接建立接口中的目标接口,通过所述目标接口向所述服务器发送所述连接请求,所述目标接口对应的优先级与所述连接请求的优先级一致。
113.例如,终端向服务器21发送连接请求后,可以通过连接池建立多个连接建立接口,并确定连接池中多个连接建立接口分别对应的优先级。例如,终端在连接池中建立了100个连接接口,其中90个接口用于处理低优先级的连接请求,10个接口用于处理高优先级的连接请求。如果有一条高优先级的连接请求,终端就会调用所述10个接口,所述10个接口为所述目标接口,通过所述目标接口向所述服务器发送所述连接请求。对于高优先级的请求,终端会调用高优先级的接口;对于低优先级的请求,终端则调用低优先级的接口。
114.本公开实施例通过向服务器发送连接请求,确定连接池中多个连接建立接口分别对应的优先级并调用所述多个连接建立接口中的目标接口,通过所述目标接口向所述服务器发送所述连接请求。由于终端能够在建立连接池时分配不同优先级的连接所占的比例,对多个连接建立接口进行划分,看哪些接口对应哪个优先级,使不同优先级的连接请求通过对应的连接建立接口发送连接请求,使得重要请求无需排队等待连接建立接口,可以使用专门的连接建立接口发送连接请求,从而及时建立连接,进而得到及时处理。
115.图5为本公开实施例提供的请求处理装置的结构示意图。该请求处理装置可以是如上实施例所述的服务器,或者该请求处理装置可以是该服务器中的部件或组件。本公开实施例提供的请求处理装置可以执行请求处理方法实施例提供的处理流程,如图5所示,请求处理装置50包括:接收模块51、连接建立模块52、处理模块53、确定模块54;其中,接收模块51用于接收终端发送的连接请求,所述连接请求包括第一参数,所述第一参数用于表示所述连接请求的优先级;连接建立模块52用于根据所述连接请求与所述终端建立连接;所述接收模块51还用于接收所述终端发送的第一查询请求,所述第一查询请求包括第二参数,所述第二参数用于表示所述第一查询请求的优先级;处理模块53用于对所述第一查询请求进行处理;确定模块54用于在对所述第一查询请求进行处理的过程中,若得到所述第一查询请求对应的预设数量的查询结果,则确定是否接收到第二查询请求,所述第二查询请求的优先级比所述第一查询请求的优先级高;所述处理模块53还用于若接收到所述第二查询请求,则对所述第二查询请求处理结束后继续处理所述第一查询请求。
116.可选的,所述连接建立模块52包括:建立单元521和绑定单元522;建立单元521用于建立第一进程,所述第一进程用于处理所述连接请求;绑定单元522用于将所述第一进程绑定到与所述连接请求的优先级匹配的中央处理器内核上。
117.可选的,绑定单元522将所述第一进程绑定到与所述连接请求的优先级匹配的中央处理器内核上时,具体用于:若与所述连接请求的优先级匹配的中央处理器内核的使用率小于第一阈值,则将所述第一进程绑定到与所述连接请求的优先级匹配的中央处理器内核上。
118.可选的,绑定单元522还用于:若与所述连接请求的优先级匹配的中央处理器内核的使用率大于或等于第二阈值,则将所述第一进程绑定到其他优先级对应的中央处理器内核上。
119.可选的,所述处理模块53包括:解析单元531、确定单元532和执行单元533;解析单元531用于对所述第一查询请求进行解析,将字符串形式的所述第一查询请求转换为带有语法结构信息的内存数据结构;确定单元532用于根据带有语法结构信息的内存数据结构,确定所述第一查询请求对应的执行方案;执行单元533用于执行所述第一查询请求对应的执行方案并返回所述第一查询请求对应的预设数量的查询结果。
120.可选的,所述处理模块53在对所述第一查询请求进行处理的过程中,若得到所述第一查询请求对应的预设数量的查询结果,则确定是否接收到第二查询请求时,具体用于:通过第二进程对所述第一查询请求进行处理,在所述处理过程中,若得到所述第一查询请求对应的预设数量的查询结果,则确定第三进程是否发起进程间通信消息,所述进程间通信消息用于表示所述第三进程识别到所述第二查询请求。
121.相应的,所述处理模块53若接收到所述第二查询请求,则对所述第二查询请求处理结束后继续处理所述第一查询请求时,具体用于:若所述第三进程发起进程间通信消息,则将所述第二进程挂起;当所述第三进程将所述第二查询请求处理结束后,控制所述第二进程继续处理所述第一查询请求。
122.图5所示实施例的请求处理装置可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
123.图6为本公开实施例提供的请求处理装置的结构示意图。该请求处理装置可以是如上实施例所述的终端,或者该请求处理装置可以该终端中的部件或组件。本公开实施例提供的请求处理装置可以执行上述方法实施例提供的处理流程,如图6所示,请求处理装置60包括:第一发送模块61、第二发送模块62;其中,第一发送模块61用于向服务器发送连接请求,所述连接请求包括第一参数,所述第一参数用于表示所述连接请求的优先级;第二发送模块62用于与所述服务器建立连接后,向所述服务器发送第一查询请求,所述第一查询请求包括第二参数,所述第二参数用于表示所述第一查询请求的优先级;所述服务器用于:在对所述第一查询请求进行处理的过程中,若得到所述第一查询请求对应的预设数量的查询结果,则确定是否接收到第二查询请求,所述第二查询请求的优先级比所述第一查询请求的优先级高;若接收到所述第二查询请求,则对所述第二查询请求处理结束后继续处理所述第一查询请求。
124.可选的,所述第一发送模块61包括:确定单元611和发送单元612;确定单元611用于确定连接池中多个连接建立接口分别对应的优先级;发送单元612用于调用所述多个连接建立接口中的目标接口,通过所述目标接口向所述服务器发送所述连接请求,所述目标接口对应的优先级与所述连接请求的优先级一致。
125.图6所示实施例的请求处理装置可用于执行上述方法实施例的技术方案,其实现
原理和技术效果类似,此处不再赘述。
126.另外,本公开实施例还提供了一种电子设备,该电子设备可以是数据库服务器,或者可以是终端。下面分别对数据库服务器和终端进行介绍。
127.图7为本公开实施例提供的数据库服务器的结构示意图。该数据库服务器可以是如上实施例所述的服务器。本公开实施例提供的数据库服务器可以执行请求处理方法实施例提供的处理流程,如图7所示,数据库服务器70包括:存储器71、处理器72、计算机程序和通讯接口73;其中,计算机程序存储在存储器71中,并被配置为由处理器72执行如上所述的请求处理方法。
128.图8为本公开实施例提供的终端的结构示意图。该终端可以是如上实施例所述的终端。本公开实施例提供的终端可以执行请求处理方法实施例提供的处理流程,如图8所示,终端80包括:存储器81、处理器82、计算机程序和通讯接口83;其中,计算机程序存储在存储器81中,并被配置为由处理器82执行如上所述的请求处理方法。
129.另外,本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的请求处理方法。
130.此外,本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序或指令,该计算机程序或指令被处理器执行时实现如上所述的请求处理方法。
131.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
132.以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1