查询服务器集群系统及查询方法

文档序号:7762618阅读:1048来源:国知局
专利名称:查询服务器集群系统及查询方法
技术领域
本发明涉及数据查询技术,具体涉及一种查询服务器集群系统及查询方法。
背景技术
电信业清单查询一直是一个技术难题,用户多、数据量大是一个显著的特点。在大 规模查询应用系统中,单台查询服务器往往不能提供由保障的服务,所以需要大量的查询 服务器同时提供服务,因此提出了查询服务器集群系统。查询服务器集群系统是用来实现大规模查询的分布式查询系统,运行在多个计算 机节点上,用来实现高并发、高吞吐量的查询服务。查询服务器集群提供缓存功能,将从目 标系统查询出来的数据缓存在系统中,缓存数据通过Key- > Value形式保存,并且设置了 有效期,对于超过有效期的数据系统会及时清除,通过数据缓存技术,减少目标系统的查询 次数,减少响应时间,提高查询系统的吞吐率。在大量查询服务器集群情况下,无法保证客户端的接入统一性。目前,通常的解决 方案是在查询服务器集群化需要在客户端和查询服务器集群端增加查询代理层,如图1所 示。由代理服务器统一接入客户端请求,提供路由和消息分发的功能,并在客户端和查询服 务器之间转发请求和应用消息,同时代理服务器还提供负载均衡的功能,将客户端的消息 均衡地分配到查询服务器集群中。在这种查询方式中,由于代理层的引入,会导致查询服务器集群系统存在以下不 足1.代理服务器是单点,容易出现单点故障;2.为了解决单点故障,需要增加备份代理服务器,增加了整体系统的额外开销;3.查询服务器集群的扩展不能在线完成,需要修改代理服务器的配置。

发明内容
本发明实施例针对上述现有技术存在的缺点,提供一种查询服务器集群系统及查 询方法,以减少不必要的查询代理层,实现查询服务器集群系统的实时扩展。为此,本发明实施例提供如下技术方案一种查询服务器集群系统,包括组成环状集群的多个查询服务器,相邻查询服务 器之间采用P2P协议相连;每个查询服务器包括环状视图管理器,用于与集群中其他查询服务器通信,获取集群的环成员信息,并 生成环全局视图;请求协调器,用于接收客户端发送的查询请求,根据所述环全局视图在组成环状 集群的多个查询服务器中确定服务查询节点,如果所述服务查询节点是本查询服务器,则 指示查询服务组件进行数据查询,并将所述查询服务组件查询到的数据返回给所述客户 端;如果所述服务查询节点是其他查询服务器,则将所述查询请求发送给所述其他查询服 务器,接收所述其他查询服务器返回的查询结果,并将所述查询结果返回给所述客户端;
查询服务组件,用于根据所述请求协调器的指示,从数据源查询数据,并将查询到 的数据返回给所述请求协调器。优选地,所述请求协调器,还用于接收集群中的其他查询服务器发送的查询请求, 指示查询服务组件进行数据查询,并将所述查询服务组件查询到的数据发送给所述其他查 询服务器。优选地,所述每个查询服务器还包括缓存引擎,用于将所述查询服务组件查询到的数据保存到缓存中。优选地,所述每个查询服务器还包括设置单元,用于设置所述查询到的数据的缓存期限;所述缓存引擎,还用于在所述查询到的数据在缓存中保存的时间超过其缓存期限 后,删除缓存中的所述数据。优选地,所述查询请求中携带查询关键字;所述请求协调器,具体用于根据所述查询关键字的哈希值确定服务查询节点。一种基于查询服务器集群系统的查询方法,所述查询服务器集群系统包括组成环 状集群的多个查询服务器,相邻查询服务器之间采用P2P协议相连;所述方法包括所述查询服务器与集群中其他查询服务器通信,获取集群的环成员信息,并生成 环全局视图;在接收到客户端发送的查询请求后,根据所述环全局视图在组成环状集群的多个 查询服务器中确定服务查询节点;如果所述服务查询节点是本查询服务器,则从数据源查询数据,并将查询到的数 据返回给所述客户端;如果所述服务查询节点是其他查询服务器,则将所述查询请求发送给所述其他查 询服务器,接收所述其他查询服务器返回的查询结果,并将所述查询结果返回给所述客户端。优选地,所述方法还包括所述查询服务器接收集群中的其他查询服务器发送的查询请求,从数据源查询数 据,并将查询到的数据返回给所述其他查询服务器。优选地,所述方法还包括所述查询服务器将查询到的数据保存到缓存中。优选地,所述方法还包括设置所述查询到的数据的缓存期限;在所述查询到的数据在缓存中保存的时间超过其缓存期限后,删除缓存中的所述 数据。优选地,所述查询请求中携带查询关键字;所述环全局视图中包括各查询服务器 的标识信息;所述根据所述环全局视图在组成环状集群的多个查询服务器中确定服务查询节 点包括根据环全局视图中各查询服务器的标识信息计算查询服务器集群中每个节点的哈希值,并将其配置到0 2n的圆上,η为32 127的任意整数;采用相同的哈希算法计算所述查询关键字的哈希值,并将其映射到圆上;从所述查询关键字的哈希值映射到的位置开始顺时针查找,并将查找到的第一个 节点的哈希值对应的查询服务器作为所述服务查询节点。本发明实施例查询服务器集群系统及查询方法,采用Ρ2Ρ分布式技术部署查询服 务器集群,使得查询服务器节点互相协作,提供高度动态化的网络服务环境,实现了高度可 扩展的分布式服务体系,可以为用户提供高效的服务保证。


为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他 的附图。图1是现有技术中通过代理服务器接入查询服务器集群的结构示意图;图2是本发明实施例查询服务器集群系统的组网示意图;图3是本发明实施例查询服务器的结构示意图;图4是本发明实施例查询服务器集群系统中确定查询路由的示意图;图5是图4所示实施例查询服务器集群系统中增加新的节点后确定查询路由的示 意图;图6是本发明实施例基于查询服务器集群系统的查询方法的流程图。
具体实施例方式为了使本技术领域的人员更好地理解本发明方案,下面结合附图和实施方式对本 发明作进一步的详细说明。如图2所示,是本发明实施例查询服务器集群系统的组网示意图。多个查询服务器采用Ρ2Ρ分布式技术组成环状集群,从而使得查询服务器互相协 作,提供高度动态化的网络服务环境,实现高度可扩展的分布式服务体系结构,提供可靠的 服务保证。查询服务器集群中任何一个节点(即查询服务器)与其他节点通信,获取并保存 环成员信息,形成相应的路由策略,为客户端提供查询服务。进一步地,通过哈希算法,使环 上的每个节点能够均衡地提供查询服务,从而使查询服务器集群的负载均衡。查询服务器集群采用一致性哈希算法形成环状,使集群中的每一个节点负责部分 键值范围的查询任务,并且通过一致性哈希算法最大限度地抑制了键的重新分布。每个查询服务器的结构如图3所示,包括以下基本组件环状视图管理器301、请 求协调器302和查询服务组件303。其中环状视图管理器301,用于与集群中其他查询服务器通信,获取集群的环成员信 息,维护集群中的环成员信息,并生成环全局视图,在所述环全局视图中包含了环上各查询 服务器的标识信息,比如可以是ID、IP地址等。具体地,环状视图管理器301可以通过Gossip (闲谈)协议与集群中其他查询服务器通信。所述Gossip协议的原理是向周围的节点传递信息,直到所有节点都有同样的信 息。通过这种方式,可以达到多点同步,并且可以不用关心具体节点数量,实现无限水平扩 展的功能。各查询服务器中的环状视图管理器301从查询服务器集群中随机选取一些查询 服务器,将自己所存储的环成员信息与对方交互,使得双方保持一致,所有查询服务器最终 生成一致的环全局视图。进一步地,所述环状视图管理器301可以将所述环全局视图持久化到磁盘上,用 来在查询服务器重启的时候,立即获得该信息,而无需重复前面的交互过程。请求协调器302,用于接收客户端发送的查询请求,根据所述环全局视图在组成环 状集群的多个查询服务器中确定服务查询节点,如果所述服务查询节点是本查询服务器, 则指示查询服务组件303进行数据查询,并将所述查询服务组件303查询到的数据返回给 所述客户端;如果所述服务查询节点是其他查询服务器,则将所述查询请求发送给所述其 他查询服务器,接收所述其他查询服务器返回的查询结果,并将所述查询结果返回给所述 客户端。具体地,所述请求协调器302可以基于异步I/O通道,采用事件驱动消息方式获取 客户端的查询请求,在所述查询请求中包含关键字。所述请求协调器302计算关键字的哈 希值,采用一致性哈希算法,在所述环全局视图中确定查询服务器,也就是说,确定查询路由。在一致性哈希算法中,每个节点都有随机分配的ID。在将内容(在本系统中具体 为查询内容)映射到节点时,使用内容的键值和节点的ID进行一致性哈希运算得到哈希 值。一致性哈希要求键值和节点ID处于同一值域。最简单的键值和ID可以是一维的,比 如从0000到9999的整数集合。根据键值存储内容时,内容将被存储到具有与其键值最接 近的ID的节点上。例如键值为1001的内容,系统中有ID为1000,1010,1100的节点,该内 容将被映射到1000节点。在本发明实施例中,客户端发送的查询请求中可以携带查询关键字,相应地,所述 请求协调器302根据所述查询关键字,一致性哈希算法确定查询路由,具体过程如下(1)根据环全局视图中各查询服务器的标识信息(比如ID、IP地址等),求出查询 服务器集群中每个节点的哈希值(也可以在配置文件中指定哈希值),并将其配置到0 2n 的圆上,η为32 127的任意整数。(2)对于所述查询关键字采用相同的哈希算法求出哈希值,并将其映射到圆上,然 后从该哈希值映射到的位置开始顺时针查找,找到第一个节点的哈希值对应的查询服务器 后,由该查询服务器执行查询任务。需要执行的查询任务具体包括向数据源发起查询请 求,获得查询结果。进一步地,可以保存查询结果到该查询服务器的缓存中。所述数据源可 以是各种数据源,比如关系数据库、数据文件等。查询服务组件303,用于根据所述请求协调器302的指示,从数据源查询数据,并 将查询到的数据返回给所述请求协调器302。接收到客户端的查询请求的查询服务器在确定查询路由时,通过上述一致性哈希 算法得到的需要执行本次查询任务的查询服务器不一定是本查询服务器,因此,所述请求 协调器302,还进一步用于接收集群中的其他查询服务器发送的查询请求,指示查询服务组件303进行数据查询,并将所述查询服务组件303查询到的数据发送给所述其他查询服务
ο需要说明的是,本发明实施例查询服务器集群系统,可以为多种设备的客户端提 供查询服务,比如PC机、笔记本电脑、手机等。本发明实施例查询服务器集群系统中,由集群中的查询服务器负责直接向客户端 提供查询服务,不需要查询代理层,减少了系统的层次,降低了部署的难度。而且,本发明实施例查询服务器集群系统具有高可伸缩性,能够实时增加节点,并 且可以在负载较重的节点之前插入新的节点,减轻相应节点的负载,而在负载不足的情况 下,还可以实时减少部分节点,从而使所述系统具有高度可伸缩性。如图4所示,是本发明实施例查询服务器集群系统中确定查询路由的一种示意 图;图5是图4所示实施例查询服务器集群系统中增加新的节点后确定查询路由的示意图。由图4和图5可以看出,在图4所示的系统状态中,添加一个查询服务器节点,采 用一致性哈希算法只会影响该节点添加位置的相邻节点的查询键值范围,而不会影响其他 的节点,从而在增加节点的时候仍然能够利用大部分节点的缓存信息,不影响添加时刻的 查询效率。同样,删除一个节点或者节点故障,也只影响删除节点的下一个位置的节点的键 值查询范围。本发明实施例查询服务器集群系统具有较强的容错机制,集群中的一台或多台查 询服务器出现故障,不会对整体数据查询服务的正确性造成影响,并且能够及时发现故障 节点并通知到系统中的其他节点。在分布式环境中,节点可能会出现临时性的网络故障而导致临时失效,一个失效 的节点通常不会造成永久的故障。因此,在实际应用中,可以通过外部机制来增加和删除节 点,在查询服务器集群中,系统管理员采用外部命令连接到已有环中的任何一个节点来执 行集群环中节点的增加和删除,该节点负责将成员信息的变化情况传播到集群中的其他的 节点上,让每个节点维护完整的环全局视图。当节点增加到集群中,第一次启动的时候,它会选择一个哈希值(这个哈希值可 以在配置文件中指定),并且将节点映射到环中,映射信息(包括哈希值)可以持久化到磁 盘中,在加入到集群中后,会首先连接种子节点,获取环中其他节点的信息,最终确定该节 点能够处理的关键字的哈希值范围,种子节点将最新的环成员信息,以及每个处理的键值 范围通过P2P协议传播出去,最终让环中的所有节点保存环的全局视图信息。因此,本发明实施例查询服务器集群系统有效地避免了查询代理服务器的单点故 障的情况发生。在每个查询服务器中还可进一步包括缓存引擎(未图示),用于将所述查询服务 组件查询到的数据保存到缓存中。这样,在后续查询过程中,可以直接从缓存中快速定位相 同数据,从而可以进一步提高查询效率,降低对数据源的访问频率,提高了整体查询系统的
吞吐量。进一步地,为了避免占用较多的缓存空间,所述每个查询服务器还可包括设置单 元(未图示),用于设置所述查询到的数据的缓存期限。相应地,所述缓存引擎,还用于在所 述查询到的数据在缓存中保存的时间超过其缓存期限后,删除缓存中的所述数据。
相应地,本发明实施例还提供一种基于查询服务器集群系统的查询方法,所述查 询服务器集群系统包括组成环状集群的多个查询服务器,相邻查询服务器之间采用P2P协 议相连。如图6所示,是该查询方法的流程图,包括以下基本步骤步骤601,查询服务器与集群中其他查询服务器通信,获取集群的环成员信息,并 生成环全局视图。步骤602,在接收到客户端发送的查询请求后,根据所述环全局视图在组成环状集 群的多个查询服务器中确定服务查询节点。具体地,可以通过一致性哈希算法来确定服务查询节点,可参照前面的描述,在此 不再赘述。步骤603,判断确定的服务查询节点是否是本查询服务器。如果是,则执行步骤 604 ;否则执行步骤605。步骤604,从数据源查询数据,并将查询到的数据返回给所述客户端。步骤605,将所述查询请求发送给所述其他查询服务器,接收所述其他查询服务器 返回的查询结果,并将所述查询结果返回给所述客户端。接收到客户端的查询请求的查询服务器在确定查询路由时,确定的需要执行本次 查询任务的查询服务器不一定是本查询服务器。因此,在本发明实施例中,还可进一步包括 以下步骤所述查询服务器接收集群中的其他查询服务器发送的查询请求,从数据源查询 数据,并将查询到的数据返回给所述其他查询服务器。需要说明的是,在客户端发送的查询请求中可以携带查询关键字;所述环全局视 图中包括各查询服务器的标识信息,具体可以是ID、或者IP地址等信息。这样,在上述步骤602中,可以按照以下过程确定服务查询节点(1)根据环全局视图中各查询服务器的标识信息计算查询服务器集群中每个节点 的哈希值,并将其配置到0 2n的圆上,η为32 127的任意整数;(2)采用相同的哈希算法计算所述查询关键字的哈希值,并将其映射到圆上;(3)从所述查询关键字的哈希值映射到的位置开始顺时针查找,并将查找到的第 一个节点的哈希值对应的查询服务器作为所述服务查询节点。当然,本发明实施例并不限定上述确定服务查询节点的具体实现方式,还可以采 用其他方式来确定服务查询节点。比如,根据需要查询的关键字建立路由表(路由表可以 包括一定范围的关键字),把路由表通过Gossip协议同步到集群中的各个节点后,根据关 键字在路由表中所处位置来定位查询服务器。利用本发明实施例基于查询服务器集群系统的查询方法,可以为多种设备的客户 端提供查询服务,比如PC机、笔记本电脑、手机等;而且,由集群中的查询服务器负责直接 向客户端提供查询服务,不需要查询代理层,减少了系统的层次,降低了部署的难度。在本发明实施例中,所述方法还可进一步包括以下步骤所述查询服务器将查询 到的数据保存到缓存中。这样,在后续查询过程中,可以直接从缓存中快速定位相同数据, 从而可以进一步提高查询效率,降低对数据源的访问频率,提高了整体查询系统的吞吐量。另外,为了避免占用较多的缓存空间,所述方法还可进一步包括以下步骤设置所述查询到的数据的缓存期限;
9
在所述查询到的数据在缓存中保存的时间超过其缓存期限后,删除缓存中的所述 数据。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部 分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实 施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例 的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明 的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是 物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要 选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出 创造性劳动的情况下,即可以理解并实施。以上对本发明实施例进行了详细介绍,本文中应用了具体实施方式
对本发明进行 了阐述,以上实施例的说明只是用于帮助理解本发明的方法及设备;同时,对于本领域的 一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所 述,本说明书内容不应理解为对本发明的限制。
权利要求
一种查询服务器集群系统,其特征在于,包括组成环状集群的多个查询服务器,相邻查询服务器之间采用P2P协议相连;每个查询服务器包括环状视图管理器,用于与集群中其他查询服务器通信,获取集群的环成员信息,并生成环全局视图;请求协调器,用于接收客户端发送的查询请求,根据所述环全局视图在组成环状集群的多个查询服务器中确定服务查询节点,如果所述服务查询节点是本查询服务器,则指示查询服务组件进行数据查询,并将所述查询服务组件查询到的数据返回给所述客户端;如果所述服务查询节点是其他查询服务器,则将所述查询请求发送给所述其他查询服务器,接收所述其他查询服务器返回的查询结果,并将所述查询结果返回给所述客户端;查询服务组件,用于根据所述请求协调器的指示,从数据源查询数据,并将查询到的数据返回给所述请求协调器。
2.根据权利要求1所述的查询服务器集群系统,其特征在于,所述请求协调器,还用于接收集群中的其他查询服务器发送的查询请求,指示查询服 务组件进行数据查询,并将所述查询服务组件查询到的数据发送给所述其他查询服务器。
3.根据权利要求1或2所述的查询服务器集群系统,其特征在于,所述每个查询服务器 还包括缓存引擎,用于将所述查询服务组件查询到的数据保存到缓存中。
4.根据权利要求3所述的查询服务器集群系统,其特征在于,所述每个查询服务器还 包括设置单元,用于设置所述查询到的数据的缓存期限;所述缓存引擎,还用于在所述查询到的数据在缓存中保存的时间超过其缓存期限后, 删除缓存中的所述数据。
5.根据权利要求1或2所述的查询服务器集群系统,其特征在于,所述查询请求中携带 查询关键字;所述请求协调器,具体用于根据所述查询关键字的哈希值确定服务查询节点。
6.一种基于查询服务器集群系统的查询方法,其特征在于,所述查询服务器集群系统 包括组成环状集群的多个查询服务器,相邻查询服务器之间采用P2P协议相连;所述方法包括所述查询服务器与集群中其他查询服务器通信,获取集群的环成员信息,并生成环全 局视图;在接收到客户端发送的查询请求后,根据所述环全局视图在组成环状集群的多个查询 服务器中确定服务查询节点;如果所述服务查询节点是本查询服务器,则从数据源查询数据,并将查询到的数据返 回给所述客户端;如果所述服务查询节点是其他查询服务器,则将所述查询请求发送给所述其他查询服 务器,接收所述其他查询服务器返回的查询结果,并将所述查询结果返回给所述客户端。
7.根据权利要求6所述的查询方法,其特征在于,所述方法还包括所述查询服务器接收集群中的其他查询服务器发送的查询请求,从数据源查询数据, 并将查询到的数据返回给所述其他查询服务器。
8.根据权利要求6或7所述的查询方法,其特征在于,所述方法还包括 所述查询服务器将查询到的数据保存到缓存中。
9.根据权利要求8所述的查询方法,其特征在于,所述方法还包括 设置所述查询到的数据的缓存期限;在所述查询到的数据在缓存中保存的时间超过其缓存期限后,删除缓存中的所述数据。
10.根据权利要求6或7所述的查询服务器集群系统,其特征在于,所述查询请求中携 带查询关键字;所述环全局视图中包括各查询服务器的标识信息;所述根据所述环全局视图在组成环状集群的多个查询服务器中确定服务查询节点包括根据环全局视图中各查询服务器的标识信息计算查询服务器集群中每个节点的哈希 值,并将其配置到0 2n的圆上,η为32 127的任意整数;采用相同的哈希算法计算所述查询关键字的哈希值,并将其映射到圆上; 从所述查询关键字的哈希值映射到的位置开始顺时针查找,并将查找到的第一个节点 的哈希值对应的查询服务器作为所述服务查询节点。
全文摘要
本发明涉及数据查询技术,公开了一种查询服务器集群系统及查询方法,所述系统包括组成环状集群的多个查询服务器,相邻查询服务器之间采用P2P协议相连;每个查询服务器包括环状视图管理器、请求协调器、查询服务组件。利用本发明,可以减少不必要的查询代理层,实现查询服务器集群系统的实时扩展。
文档编号H04L29/06GK101969468SQ20101051258
公开日2011年2月9日 申请日期2010年10月14日 优先权日2010年10月14日
发明者喻先兵, 温文全 申请人:广州从兴电子开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1