CN102023997A - 一种数据查询系统及其构建方法与相应的数据查询方法 - Google Patents
一种数据查询系统及其构建方法与相应的数据查询方法 Download PDFInfo
- Publication number
- CN102023997A CN102023997A CN2009101781036A CN200910178103A CN102023997A CN 102023997 A CN102023997 A CN 102023997A CN 2009101781036 A CN2009101781036 A CN 2009101781036A CN 200910178103 A CN200910178103 A CN 200910178103A CN 102023997 A CN102023997 A CN 102023997A
- Authority
- CN
- China
- Prior art keywords
- query
- component
- client
- query component
- client request
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000010276 construction Methods 0.000 title claims abstract description 19
- 238000013507 mapping Methods 0.000 claims description 19
- 230000004043 responsiveness Effects 0.000 claims description 8
- 230000000737 periodic effect Effects 0.000 claims description 3
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011437 continuous method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/217—Database tuning
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computer And Data Communications (AREA)
Abstract
一种数据查询系统,包括客户端,查询组件代理以及与该查询组件代理连接的一个或多个查询组件;客户端用于向查询组件代理发送客户端请求;查询组件代理用于保存查询组件的查询组件号、查询组件实例以及查询组件的负载情况,并根据查询组件上报的所述查询组件的客户端请求负载情况进行更新;以及接收客户端请求,并根据负载均衡的原则,选择一个查询组件返回给所述客户端;查询组件用于向查询组件代理发送查询组件号与查询组件实例进行注册,并上报所述查询组件的客户端请求负载情况;以及处理所述客户端请求并将处理结果返回给所述客户端。相应地,还提供该数据查询系统的构建方法以及数据查询方法。本发明保证了数据查询系统的高可用性。
Description
技术领域
本发明涉及数据查询领域,尤其涉及一种数据查询系统及其构建方法与相应的数据查询方法。
背景技术
在数据查询系统构建中,尤其是在性能数据查询系统构建中,或者网站服务器的构建中,往往需要接收从客户端发送来的诸多客户端请求,其中客户端可以是GUI(Graphical User Interface,图形用户界面),客户端或者Web客户端,这些客户端请求往往都会涉及到大规模的数据网络传递,而且返回的数据还需要进行一些逻辑计算、归并以及排序之类的处理。例如,性能数据查询系统中,采集到的性能数据经过处理后存储到性能报表中,数据查询系统中往往需要通过查询组件先从后台数据库中查询出符合条件的性能报表中的性能数据,再将这些性能数据从后台经过网络传递回来,返回的性能数据再经过一些逻辑计算被封装成适合GUI显示的数据结构;如果是分布式系统的话,还会接收从不同的数据源来的数据,在数据查询系统中合并,最终提供给GUI用于显示。
目前查询组件一般都采用直接构建的方式,并且在逻辑上具有唯一性,也就是说一个数据查询系统只有一个查询组件,所有的客户端请求(包括GUI,客户端或Web客户端的客户端请求)都在这个查询组件中去处理,往往会出现由于请求的增多而导致服务不能及时响应,从而降低处理效率。
因此,由于查询组件的唯一特性,也使得查询组件不具备可扩展性,不具备可伸缩性,也不能通过添加硬件设备来提升请求处理的效率,影响系统本身的可用性。
发明内容
本发明要解决的技术问题是提供一种数据查询系统及其构建方法与相应的数据查询方法,保证了数据查询系统的高可用性。
为了解决上述问题,本发明提供了一种数据查询系统,包括客户端,所述数据查询系统还包括一个查询组件代理以及与该查询组件代理连接的一个或多个查询组件;其中,
所述客户端,用于向所述查询组件代理发送客户端请求;
所述查询组件代理,用于保存所述查询组件的查询组件号、查询组件实例以及查询组件的负载情况,并根据查询组件上报的所述查询组件的客户端请求负载情况进行更新;以及接收所述客户端请求,并根据负载均衡的原则,选择一个查询组件返回给所述客户端;
所述查询组件,用于向查询组件代理发送查询组件号与查询组件实例进行注册,并上报所述查询组件的客户端请求负载情况;以及处理所述客户端请求并将处理结果返回给所述客户端。
进一步地,上述数据查询系统还具有如下特征:
所述客户端请求负载情况为所述查询组件上正在处理的客户端请求的数量,所述负载均衡原则为所述查询组件上当前正在处理的客户端请求个数最少;
或者,所述客户端请求负载情况为所述查询组件上的客户端请求的处理权重,所述负载均衡原则为所述查询组件上当前正在处理的所述客户端请求的处理权重最小。
进一步地,上述数据查询系统还具有如下特征:
所述数据查询系统进一步包括查询组件号分配器和负载均衡控制器;其中,
所述查询组件号分配器,用于在所述查询组件启动时,给所述查询组件分配一个唯一的未被其他查询组件占用的查询组件号;
所述负载均衡控制器,用于在所述数据查询系统运行过程中,根据数据查询系统运行指标或根据接收到的用户的控制命令,向所述查询组件发送启动指令,指示所述查询组件启动;
其中,负载均衡控制器根据接收到的用户的控制命令向查询组件发送启动指令,或者负载均衡控制器根据所述数据查询系统运行指标设置启动阈值,并监测所述数据查询系统的运行状况,如果数据查询系统运行指标达到所述启动阈值,则向所述查询组件发送启动指令。
进一步地,上述数据查询系统还具有如下特征:
所述数据查询系统运行指标为数据查询系统的使用规模,客户端请求的响应性,客户端请求的数目,系统支持的客户请求的计算量,请求在处理时CPU的耗时以及占用资源中的一种或多种。
为了解决上述问题,本发明还提供了一种上述数据查询系统的构建方法,具体包括如下步骤:
启动一个查询组件代理以及启动一个或多个查询组件,所述查询组件启动后向所述查询组件代理发送查询组件号与查询组件实例进行注册,并上报所述查询组件的客户端请求负载情况,所述查询组件代理保存所述查询组件号、查询组件实例以及所述查询组件的客户端请求负载情况的映射关系,并根据所述查询组件上报的客户端请求负载情况更新保存的所述客户端请求负载情况;
所述查询组件代理接收到客户端请求后,按照负载均衡的原则,选择一个查询组件返回给客户端,所述查询组件更新所述查询组件的客户端请求负载情况。
进一步地,上述构建方法还具有如下特征:
所述启动一个或多个查询组件,在所述数据查询系统开始运行时同时启动所有查询组件。
或者,所述数据查询系统还包括一个负载均衡控制器;所述启动一个或多个查询组件,是在所述数据查询系统运行过程中,所述负载均衡控制器根据数据查询系统运行指标或根据接收到的用户的控制命令,向所述查询组件发送启动指令,指示所述查询组件启动;
其中,负载均衡控制器是根据接收到的用户的控制命令向查询组件发送启动指令,或者负载均衡控制器根据所述数据查询系统运行指标设置启动阈值,并监测所述数据查询系统的运行状况,如果数据查询系统运行指标达到所述启动阈值,则向所述查询组件发送启动指令;
所述数据查询系统运行指标为数据查询系统的使用规模,客户端请求的响应性,客户端请求的数目,系统支持的客户请求的计算量,请求在处理时CPU的耗时以及占用资源中的一种或多种。
进一步地,上述构建方法还具有如下特征:
所述客户端请求负载情况为所述查询组件上正在处理的客户端请求的数量,所述负载均衡原则为所述查询组件上当前正在处理的客户端请求个数最少;
或者,所述客户端请求负载情况为所述查询组件上的客户端请求的处理权重,所述负载均衡原则为所述查询组件上当前正在处理的所述客户端请求的处理权重最小。
进一步地,上述构建方法还具有如下特征:
所述查询组件代理保存所述查询组件号、查询组件实例以及所述查询组件的客户端请求负载情况的映射关系,并根据所述查询组件上报的客户端请求负载情况更新保存的客户端请求负载情况,具体包括如下步骤:
所述查询组件代理初始化两个哈希表,第一哈希表用来保存所述查询组件号和所述查询组件实例的映射关系,第二哈希表用来保存所述查询组件号和所述查询组件上客户端请求负载情况的映射关系;
所述查询组件代理接受查询组件的注册后,将所述查询组件号和查询组件实例的映射关系保存在所述第一哈希表中;
所述查询组件代理接受所述查询组件的周期心跳联系,并定期更新所述第二哈希表中查询组件上客户端请求负载情况。
进一步地,上述构建方法还具有如下特征:
所述客户端请求负载情况为所述查询组件上正在处理的客户端请求的数量,所述查询组件更新所述客户端请求负载情况具体为:
所述查询组件在处理所述客户端请求前,所述查询组件正在处理的客户端请求数计数加一个计数单位值;
所述查询组件向客户端返回请求结果前,所述查询组件正在处理的客户端请求数减所述计数单位值。
进一步地,上述构建方法还具有如下特征:
所述查询组件向所述查询组件代理发送查询组件号与查询组件实例进行注册,并上报所述查询组件的客户端请求负载情况,具体包括如下步骤:
A、所述查询组件启动一定时器;
B、定时时间到,所述查询组件判断向所述查询组件代理注册是否成功,如果不成功,执行步骤C;如果成功,判断上一次向所述查询组件代理心跳发送所述客户端请求负载情况是否成功;如果成功,执行步骤D,否则执行步骤C;
C、所述查询组件向所述查询组件代理注册,返回步骤B;
D、所述查询组件向所述查询组件代理发送所述客户端请求负载情况,返回步骤B。
为了解决上述问题,本发明还提供了一种数据查询方法,包括如下步骤:
客户端向查询组件代理发送客户端请求;
所述查询组件代理根据负载均衡的原则,选择查询组件,并将该查询组件返回给所述客户端;
所述查询组件处理所述客户端请求,并将处理结果返回给所述客户端;
其中,所述客户端请求负载情况为所述查询组件上正在处理的客户端请求的数量,所述负载均衡原则为所述查询组件上当前正在处理的客户端请求个数最少;
或者,所述客户端请求负载情况为所述查询组件上的客户端请求的处理权重,所述负载均衡原则为所述查询组件上当前正在处理的所述客户端请求的处理权重最小。
上述数据查询系统和数据查询方法保证了数据查询系统的高可用性,可以克服现有数据查询系统中,当客户端请求增多时,单一查询组件不能及时响应的缺陷。
附图说明
图1是本发明实施例查询组件代理启动后保存并更新映射关系流程图;
图2是本发明实施例查询组件动态地启动,以及注册和上报查询组件号与客户端请求负载情况的流程图;
图3是本发明实施例查询组件代理根据负载均衡原则获取查询组件的流程图。
具体实施方式
下面结合附图详细说明本发明的具体实施方式。
本实施例中的数据查询系统,包括客户端、一个查询组件代理以及一个或多个与该查询组件代理连接的查询组件;其中,
客户端,用于向查询组件代理发送客户端请求;
查询组件代理,用于保存查询组件的查询组件号、查询组件实例以及查询组件的负载情况,并根据查询组件上报的查询组件的客户端请求负载情况进行更新;以及接收客户端请求,并根据负载均衡的原则,选择一个查询组件返回给客户端;
查询组件,用于向查询组件代理发送查询组件号与查询组件实例进行注册,并上报查询组件的客户端请求负载情况;以及处理客户端请求并将处理结果返回给客户端。
上述数据查询系统还可以进一步包括:一个查询组件号分配器和一个负载均衡控制器;其中,
查询组件号分配器,用于给查询组件分配一个唯一的未被其他查询组件占用的查询组件号;
负载均衡控制器,用于在数据查询系统运行过程中,根据数据查询系统运行指标或根据接收到的用户的控制命令,向查询组件发送启动指令,指示查询组件启动;
进一步地,负载均衡控制器可以根据接收到的用户的控制命令向查询组件发送启动指令,负载均衡控制器还可以根据不同的数据查询系统运行指标设置启动阈值,并监测数据查询系统的运行状况,如果数据查询系统运行指标达到该阈值,则向查询组件发送启动指令;
其中,数据查询系统运行指标可以为数据查询系统的使用规模,客户端请求的响应性,客户端请求的数目,系统支持的客户请求的计算量,请求在处理时CPU的耗时,占用资源中的一种或多种。
基于上述数据查询系统,本实施例给出上述数据查询系统的构建方法;
本实施例将原来的一个查询组件扩展为一个或多个查询组件,并创建一个查询组件代理用来管理该一个或多个查询组件;其中每个查询组件都可以设置为能够处理所有类型的客户端请求,不限制每个查询组件能够处理的客户端请求的类型;
查询组件代理还用于接收客户端请求,并根据负载均衡的原则选择查询组件返回给发送请求的客户端;由此可见,本实施例中客户端请求不是直接发送给查询组件的。
本实施例的构建方法具体包括如下步骤:
第一步:启动查询组件代理以及一个或多个查询组件,查询组件启动后向查询组件代理发送查询组件号和查询组件实例进行注册,并向查询组件代理上报客户端请求负载情况,查询组件代理保存查询组件的查询组件号、查询组件实例以及与查询组件的客户端请求负载情况的映射关系,并根据查询组件的上报更新客户端请求负载情况;
本实施例中优选查询组件周期性地判断向查询组件代理的注册情况,以及周期性的上报客户端请求负载情况,以供查询组件代理进行更新;这样的设计使得方案中的各个部分之间的耦合更小,容错性更加好。当然也可以是其他实施方式,如接收到一个客户端请求就进行判断等。
查询组件周期性地判断向查询组件代理的注册情况,以及周期性的上报客户端请求负载情况,以供查询组件代理进行更新具体包括如下步骤:
注册指当某个查询组件启动后,该查询组件将其查询组件号和查询组件实例发送给查询组件代理;查询组件代理接受查询组件的注册,保存该查询组件的查询组件号与查询组件实例的映射关系;
查询组件代理用来管理一个或多个查询组件,并用于接收客户端请求;管理包括接受启动的查询组件的注册,保存查询组件号、查询组件实例以及查询组件的客户端请求负载情况的映射关系,以及更新客户端请求负载情况;
查询组件上客户端请求负载情况,可以是查询组件上正在处理的客户端请求的数目,还可以是查询组件上客户端请求的处理权重;
查询组件代理根据客户端请求负载情况选择查询组件,找到查询组件实例(instance),从而将该查询组件实例表示的查询组件返回给客户端;
图1所示为一个查询组件代理启动后保存以及更新映射关系的具体实施例,本实施例中查询组件上客户端请求负载情况为查询组件上正在处理的客户端请求数目,具体包括如下步骤:
步骤101:查询组件代理初始化两个哈希表,一个哈希表QRYS用来保存查询组件号和查询组件实例的映射关系,一个哈希表QRYN用来保存查询组件号和查询组件上正在处理的客户端请求数目的映射关系;
在另一实施例中,也可以将查询组件号、查询组件实例以及每个查询组件上正在处理的请求的映射关系保存在一个表中;
步骤102:查询组件代理接受查询组件的注册,并将查询组件号和查询组件实例的映射关系保存在哈希表QRYS中;
步骤103:查询组件代理接受查询组件的周期心跳联系,查询组件将查询组件号以及该查询组件正在处理的客户端请求个数作为参数传递给查询组件代理,查询组件代理更新哈希表QRYN中查询组件号和查询组件正在处理的客户端请求个数;
此步骤中,查询组件代理可以是定期更新哈希表QRYN中查询组件号和查询组件正在处理的客户端请求个数;也可以是实时更新,或者查询组件代理根据需要指示查询组件发送正在处理的客户端请求个数等多种实施方式;
第一步中,启动查询组件可以由也有多种实施方式:
如可以在数据查询系统开始运行时同时启动所有查询组件;
也可在运行过程中由负载均衡控制器根据数据查询系统运行指标或根据接收到的用户的控制命令,动态地启动查询组件,而且每个查询组件的启动都是独立的;其中负载均衡控制器用于向查询组件发送启动指令,指示查询组件启动;
进一步地,负载均衡控制器可以根据接收到的用户的控制命令向查询组件发送启动指令,负载均衡控制器还可以根据不同的数据查询系统运行指标设置启动阈值,并监测数据查询系统的运行状况,如果数据查询系统运行指标达到该阈值,则向查询组件发送启动指令;
其中,数据查询系统运行指标可以为数据查询系统的使用规模,客户端请求的响应性,客户端请求的数目,系统支持的客户请求的计算量,请求在处理时CPU的耗时,占用资源中的一种或多种。
图2所示为查询组件动态地启动,以及注册和上报查询组件号与客户端请求负载情况的优选的实施例,具体包括如下步骤:
步骤201:查询组件获取一个未被其他查询组件占用的查询组件号;
查询组件号可以是由一个查询组件号分配器分配给查询组件;
该查询组件分配器,用于向查询组件分配一个唯一的未被其他查询组件占用的查询组件号;
当然,查询组件号也可以预先配置到查询组件中,此时步骤201可以省略;
步骤202:查询组件设置一个变量用来保存目前该查询组件的客户端请求负载情况,如正在处理的客户端请求的个数;
步骤203:查询组件启动一定时器;
该定时器的定时时间可以根据实际数据查询系统的运行进行设置,本发明对此并不限定;
此外,本步骤中还可以进一步初始化用来表示注册是否成功的变量一和表示上一次向查询组件代理发送客户端请求负载是否成功的变量二;但本发明并不限于此方法对注册是否成功和发送客户端请求负载是否成功进行限定,如还可以是根据与查询组件代理进行交互通知查询组件是否成功;
其中变量一和变量二可以是布尔变量,用True表示成功,用False表示失败,当然也可以是其他变量。
步骤204:定时时间到,查询组件判断向查询组件代理注册是否成功,如果不成功,执行步骤205;如果成功,判断上一次向查询组件代理心跳发送客户端请求负载(如客户端请求个数)是否成功;如果成功,执行步骤206,否则执行步骤205;
如可以根据变量一和变量二的值进行判断;
步骤205:向查询组件代理注册,返回步骤204;
如果采用设置变量一的方式,此步骤进一步包括按照注册是否成功的结果设置变量一的值;如:当注册成功,将布尔变量表示的变量一置为Ture,否则置为False;
步骤206:向查询组件代理发送客户端请求负载情况,如当前正在处理的客户端请求数目;返回步骤204;
如果采用设置变量二的方式,此步骤进一步还包括按照向查询组件代理发送客户端请求负载情况是否成功的结果设置变量二的值。
当然,非动态启动的注册和上报也可以采用本实施例的实施方式。
上述优选实施例中,查询组件通过断点续连的方法,也就是启动时注册,然后周期发送当前正在客户端请求个数给查询组件代理,保持查询组件和查询组件代理之间的联系。特别是在分布式系统中,不同客户端请求往往会被分到不同的数据源或者后台去做,这些客户端请求之间本身不具备关联性,但是如果都通过一个查询组件去做的话,就会使得他们相互影响,本方案将尽量减小他们之间不必要的耦合。
第二步:查询组件代理接收到客户端请求后,按照负载均衡的原则,选择一个查询组件返回给客户端;
其中,负载均衡原则有很多种,如:可以是在每次接收到客户端获取查询组件时,都选择一个当前正在处理的客户端请求个数最少的查询组件返回给客户端;或者可以是根据客户端请求的处理权重,将当前处理权重最小的查询组件返回给客户端;
权重是系统对客户端请求的响应性;如,数据量越大,对响应性的影响越大;因此,根据客户端请求的处理权重选择查询组件时,可以是根据当前正在处理的客户端请求的计算量最小的查询组件返回给客户端,或者可以选择当前处理客户端请求时CPU耗时最少的查询组件返回给客户端等中的一种或多种;
因此,当客户端请求负载情况为所述查询组件上正在处理的客户端请求的数量时,负载均衡原则为查询组件上当前正在处理的客户端请求个数最少;
或者,当客户端请求负载情况为查询组件上的客户端请求的处理权重时,负载均衡原则为查询组件上当前正在处理的客户端请求的处理权重最小。
图3所示为查询组件代理根据负载均衡原则获取查询组件的实施例,包括如下步骤:
步骤301:查询组件代理从哈希表QRYN中获取所有查询组件正在处理的客户端请求的个数;
步骤302:查询组件代理获取正在处理的客户端请求的个数最小的查询组件号,若是查询请求个数最小的不止一个,随机抽取一个;
步骤303:根据获取的查询组件号从哈希表QRYS中找到对应的查询组件实例返回给客户端;
第三步:查询组件更新查询组件的客户端请求负载情况;
如客户端请求负载情况为查询组件正在处理的客户端请求数,具体可以是:查询组件在处理客户端请求前,查询组件请求计数加一个单位计数值,如1,向客户端返回请求结果前,查询组件正在处理的客户端请求数计数减一个同样的单位计数值;
如客户端请求负载情况为客户端请求的处理权重,查询组件则计算当前客户端请求的处理权重并更新。
本发明由于能够动态地通过添加查询组件来满足系统的需求,使得系统的动态扩展性好,这个方案本身也可推而广之应用到任何需要高可伸缩性的应用,具体可以是管理信息系统(Management Information System,MIS),信息查询系统,性能数据查询系统,尤其是网管上的性能数据查询系统等。
相应地,本实施例还给出基于上述数据查询系统的数据查询的方法,具体包括如下步骤:
A、客户端向查询组件代理发送客户端请求;
B、查询组件代理根据负载均衡的原则,选择查询组件,并将该查询组件返回给客户端;
C、查询组件处理客户端请求,并将处理结果返回给客户端。
本发明的方案与传统单一组件查询,集中处理查询请求的方案相比,每个查询组件都具有平等的处理能力,即查询组件在逻辑上不再具有唯一性。查询组件的选择交由查询组件代理去做,使得组件具备高可伸缩性。当查询请求较多以至于现有的查询组件不能有效处理时,能动态地增加查询组件,而新增的查询组件可以部署在别的机器上,达到通过添加硬件设备来提升响应能力而又不影响正在处理的客户端请求,极大地提升可数据查询系统的可用性。
Claims (11)
1.一种数据查询系统,包括客户端,其特征在于,所述数据查询系统还包括一个查询组件代理以及与该查询组件代理连接的一个或多个查询组件;其中,
所述客户端,用于向所述查询组件代理发送客户端请求;
所述查询组件代理,用于保存所述查询组件的查询组件号、查询组件实例以及查询组件的负载情况,并根据查询组件上报的所述查询组件的客户端请求负载情况进行更新;以及接收所述客户端请求,并根据负载均衡的原则,选择一个查询组件返回给所述客户端;
所述查询组件,用于向查询组件代理发送查询组件号与查询组件实例进行注册,并上报所述查询组件的客户端请求负载情况;以及处理所述客户端请求并将处理结果返回给所述客户端。
2.如权利要求1所述的数据查询系统,其特征在于:
所述客户端请求负载情况为所述查询组件上正在处理的客户端请求的数量,所述负载均衡原则为所述查询组件上当前正在处理的客户端请求个数最少;
或者,所述客户端请求负载情况为所述查询组件上的客户端请求的处理权重,所述负载均衡原则为所述查询组件上当前正在处理的所述客户端请求的处理权重最小。
3.如权利要求1或2所述的数据查询系统,其特征在于,所述数据查询系统进一步包括查询组件号分配器和负载均衡控制器;其中,
所述查询组件号分配器,用于在所述查询组件启动时,给所述查询组件分配一个唯一的未被其他查询组件占用的查询组件号;
所述负载均衡控制器,用于在所述数据查询系统运行过程中,根据数据查询系统运行指标或根据接收到的用户的控制命令,向所述查询组件发送启动指令,指示所述查询组件启动;
其中,负载均衡控制器根据接收到的用户的控制命令向查询组件发送启动指令,或者负载均衡控制器根据所述数据查询系统运行指标设置启动阈值,并监测所述数据查询系统的运行状况,如果数据查询系统运行指标达到所述启动阈值,则向所述查询组件发送启动指令。
4.如权利要求3所述的数据查询系统,其特征在于:
所述数据查询系统运行指标为数据查询系统的使用规模,客户端请求的响应性,客户端请求的数目,系统支持的客户请求的计算量,请求在处理时CPU的耗时以及占用资源中的一种或多种。
5.一种如权利要求1所述的数据查询系统的构建方法,其特征在于,所述构建方法具体包括如下步骤:
启动一个查询组件代理以及启动一个或多个查询组件,所述查询组件启动后向所述查询组件代理发送查询组件号与查询组件实例进行注册,并上报所述查询组件的客户端请求负载情况,所述查询组件代理保存所述查询组件号、查询组件实例以及所述查询组件的客户端请求负载情况的映射关系,并根据所述查询组件上报的客户端请求负载情况更新保存的所述客户端请求负载情况;
所述查询组件代理接收到客户端请求后,按照负载均衡的原则,选择一个查询组件返回给客户端,所述查询组件更新所述查询组件的客户端请求负载情况。
6.如权利要求5所述的构建方法,其特征在于:
所述启动一个或多个查询组件,在所述数据查询系统开始运行时同时启动所有查询组件。
或者,所述数据查询系统还包括一个负载均衡控制器;所述启动一个或多个查询组件,是在所述数据查询系统运行过程中,所述负载均衡控制器根据数据查询系统运行指标或根据接收到的用户的控制命令,向所述查询组件发送启动指令,指示所述查询组件启动;
其中,负载均衡控制器是根据接收到的用户的控制命令向查询组件发送启动指令,或者负载均衡控制器根据所述数据查询系统运行指标设置启动阈值,并监测所述数据查询系统的运行状况,如果数据查询系统运行指标达到所述启动阈值,则向所述查询组件发送启动指令;
所述数据查询系统运行指标为数据查询系统的使用规模,客户端请求的响应性,客户端请求的数目,系统支持的客户请求的计算量,请求在处理时CPU的耗时以及占用资源中的一种或多种。
7.如权利要求5或6所述的构建方法,其特征在于,
所述客户端请求负载情况为所述查询组件上正在处理的客户端请求的数量,所述负载均衡原则为所述查询组件上当前正在处理的客户端请求个数最少;
或者,所述客户端请求负载情况为所述查询组件上的客户端请求的处理权重,所述负载均衡原则为所述查询组件上当前正在处理的所述客户端请求的处理权重最小。
8.如权利要求5或6所述的构建方法,其特征在于,
所述查询组件代理保存所述查询组件号、查询组件实例以及所述查询组件的客户端请求负载情况的映射关系,并根据所述查询组件上报的客户端请求负载情况更新保存的客户端请求负载情况,具体包括如下步骤:
所述查询组件代理初始化两个哈希表,第一哈希表用来保存所述查询组件号和所述查询组件实例的映射关系,第二哈希表用来保存所述查询组件号和所述查询组件上客户端请求负载情况的映射关系;
所述查询组件代理接受查询组件的注册后,将所述查询组件号和查询组件实例的映射关系保存在所述第一哈希表中;
所述查询组件代理接受所述查询组件的周期心跳联系,并定期更新所述第二哈希表中查询组件上客户端请求负载情况。
9.如权利要求7所述的构建方法,其特征在于:
所述客户端请求负载情况为所述查询组件上正在处理的客户端请求的数量,所述查询组件更新所述客户端请求负载情况具体为:
所述查询组件在处理所述客户端请求前,所述查询组件正在处理的客户端请求数计数加一个计数单位值;
所述查询组件向客户端返回请求结果前,所述查询组件正在处理的客户端请求数减所述计数单位值。
10.如权利要求5或6所述的构建方法,其特征在于,所述查询组件向所述查询组件代理发送查询组件号与查询组件实例进行注册,并上报所述查询组件的客户端请求负载情况,具体包括如下步骤:
A、所述查询组件启动一定时器;
B、定时时间到,所述查询组件判断向所述查询组件代理注册是否成功,如果不成功,执行步骤C;如果成功,判断上一次向所述查询组件代理心跳发送所述客户端请求负载情况是否成功;如果成功,执行步骤D,否则执行步骤C;
C、所述查询组件向所述查询组件代理注册,返回步骤B;
D、所述查询组件向所述查询组件代理发送所述客户端请求负载情况,返回步骤B。
11.一种数据查询方法,包括如下步骤:
客户端向查询组件代理发送客户端请求;
所述查询组件代理根据负载均衡的原则,选择查询组件,并将该查询组件返回给所述客户端;
所述查询组件处理所述客户端请求,并将处理结果返回给所述客户端;
其中,所述客户端请求负载情况为所述查询组件上正在处理的客户端请求的数量,所述负载均衡原则为所述查询组件上当前正在处理的客户端请求个数最少;
或者,所述客户端请求负载情况为所述查询组件上的客户端请求的处理权重,所述负载均衡原则为所述查询组件上当前正在处理的所述客户端请求的处理权重最小。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101781036A CN102023997B (zh) | 2009-09-23 | 2009-09-23 | 一种数据查询系统及其构建方法与相应的数据查询方法 |
EP10818302.1A EP2472416B1 (en) | 2009-09-23 | 2010-06-03 | Data query system and constructing method thereof and corresponding data query method |
US13/497,702 US8909666B2 (en) | 2009-09-23 | 2010-06-03 | Data query system and constructing method thereof and corresponding data query method |
PCT/CN2010/073521 WO2011035608A1 (zh) | 2009-09-23 | 2010-06-03 | 一种数据查询系统及其构建方法与相应的数据查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101781036A CN102023997B (zh) | 2009-09-23 | 2009-09-23 | 一种数据查询系统及其构建方法与相应的数据查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102023997A true CN102023997A (zh) | 2011-04-20 |
CN102023997B CN102023997B (zh) | 2013-03-20 |
Family
ID=43795352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101781036A Active CN102023997B (zh) | 2009-09-23 | 2009-09-23 | 一种数据查询系统及其构建方法与相应的数据查询方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8909666B2 (zh) |
EP (1) | EP2472416B1 (zh) |
CN (1) | CN102023997B (zh) |
WO (1) | WO2011035608A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103281343A (zh) * | 2013-01-07 | 2013-09-04 | 广西电网公司 | 一种基于代理机制的通用历史数据服务的实现方法 |
CN107818122A (zh) * | 2016-09-14 | 2018-03-20 | 深圳市优朋普乐传媒发展有限公司 | 一种代理组件、搜索管理方法及搜索管理系统 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104023059A (zh) * | 2014-06-06 | 2014-09-03 | 陕西理工学院 | 一种减轻服务设备响应的服务代理方法 |
CN104902001B (zh) * | 2015-04-07 | 2018-04-06 | 杭州电子科技大学 | 基于操作系统虚拟化的Web请求负载均衡方法 |
CN108270840B (zh) * | 2017-01-04 | 2021-08-31 | 阿里巴巴集团控股有限公司 | 一种业务监控、业务数据的搜索方法、装置和电子设备 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7668740B1 (en) * | 2000-09-22 | 2010-02-23 | Ita Software, Inc. | Method, system, and computer program product for interfacing with information sources |
US7203747B2 (en) * | 2001-05-25 | 2007-04-10 | Overture Services Inc. | Load balancing system and method in a multiprocessor system |
US20030115259A1 (en) * | 2001-12-18 | 2003-06-19 | Nokia Corporation | System and method using legacy servers in reliable server pools |
US8239535B2 (en) * | 2005-06-06 | 2012-08-07 | Adobe Systems Incorporated | Network architecture with load balancing, fault tolerance and distributed querying |
US8150917B2 (en) * | 2006-09-22 | 2012-04-03 | Microsoft Corporation | High availability conferencing |
CN201114128Y (zh) * | 2007-09-12 | 2008-09-10 | 福建富士通信息软件有限公司 | 企业搜索引擎装置 |
CN101169785A (zh) * | 2007-11-21 | 2008-04-30 | 浪潮电子信息产业股份有限公司 | 集群数据库系统的动态负载均衡方法 |
ES2387625T3 (es) * | 2007-12-17 | 2012-09-27 | Nokia Siemens Networks Oy | Encaminamiento de consulta en un sistema de base de datos distribuida |
JPWO2010098034A1 (ja) * | 2009-02-24 | 2012-08-30 | 日本電気株式会社 | 分散データベース管理システムおよび分散データベース管理方法 |
US8037076B2 (en) * | 2009-05-11 | 2011-10-11 | Red Hat, Inc. | Federated indexing from hashed primary key slices |
CA2709498A1 (en) * | 2009-07-10 | 2011-01-10 | Xkoto Inc. | System and method for subunit operations in a database |
US9984327B2 (en) * | 2010-06-17 | 2018-05-29 | Palo Alto Research Center Incorporated | System and method for parallel graph searching utilizing parallel edge partitioning |
-
2009
- 2009-09-23 CN CN2009101781036A patent/CN102023997B/zh active Active
-
2010
- 2010-06-03 EP EP10818302.1A patent/EP2472416B1/en active Active
- 2010-06-03 WO PCT/CN2010/073521 patent/WO2011035608A1/zh active Application Filing
- 2010-06-03 US US13/497,702 patent/US8909666B2/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103281343A (zh) * | 2013-01-07 | 2013-09-04 | 广西电网公司 | 一种基于代理机制的通用历史数据服务的实现方法 |
CN103281343B (zh) * | 2013-01-07 | 2016-06-29 | 广西电网公司 | 一种基于代理机制的通用历史数据服务的实现方法 |
CN107818122A (zh) * | 2016-09-14 | 2018-03-20 | 深圳市优朋普乐传媒发展有限公司 | 一种代理组件、搜索管理方法及搜索管理系统 |
Also Published As
Publication number | Publication date |
---|---|
US20120226702A1 (en) | 2012-09-06 |
EP2472416B1 (en) | 2019-08-07 |
EP2472416A1 (en) | 2012-07-04 |
CN102023997B (zh) | 2013-03-20 |
US8909666B2 (en) | 2014-12-09 |
WO2011035608A1 (zh) | 2011-03-31 |
EP2472416A4 (en) | 2016-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108810100B (zh) | 一种主节点的选举方法、装置及设备 | |
CN111615066B (zh) | 一种基于广播的分布式微服务注册及调用方法 | |
CN107317830B (zh) | 一种服务发现的处理方法及装置 | |
CN100389392C (zh) | 一种集群系统中实现负载均衡的方法、系统和存储控制器 | |
CN106302565B (zh) | 业务服务器的调度方法及系统 | |
US8095935B2 (en) | Adapting message delivery assignments with hashing and mapping techniques | |
US20170070567A1 (en) | Load balancing apparatus and load balancing method | |
KR101914488B1 (ko) | 푸시 알림 서비스를 위한 서버 클러스터 및 방법 | |
CN102023997B (zh) | 一种数据查询系统及其构建方法与相应的数据查询方法 | |
US8510742B2 (en) | Job allocation program for allocating jobs to each computer without intensively managing load state of each computer | |
CN103401937A (zh) | 日志数据处理方法及系统 | |
US10509716B2 (en) | Automated recovery of flighted features based on service requests | |
US20160344582A1 (en) | Call home cluster | |
CN111913784B (zh) | 任务调度方法及装置、网元、存储介质 | |
WO2016082078A1 (zh) | 路径管理的系统、装置和方法 | |
US20240250918A1 (en) | Node for running container group, and container group management system and method | |
CN112416594A (zh) | 一种微服务分配方法、电子设备和计算机存储介质 | |
CN112231223A (zh) | 基于mqtt的分布式自动化软件测试方法及系统 | |
CN113810474B (zh) | 一种请求的分流方法及终端 | |
CN109063140A (zh) | 一种数据查询方法、中转服务器及计算机可读存储介质 | |
CN106815318B (zh) | 一种时序数据库的集群化方法及系统 | |
KR20080082227A (ko) | 로드 밸런싱 시스템의 요청 배정 장치 및 로드 밸런싱 방법 | |
CN113765690A (zh) | 集群切换方法、系统、装置、终端、服务器及存储介质 | |
JP2001202318A (ja) | データ配信システム | |
CN104852964A (zh) | 一种多功能服务器调度方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |