一种分配服务器的方法及装置与流程

文档序号:11879002阅读:208来源:国知局
一种分配服务器的方法及装置与流程

本发明实施例涉及网络技术领域,尤其涉及一种分配服务器的方法及装置。



背景技术:

服务器集群就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。集群技术的出现和IA架构服务器的快速发展为社会的需求提供了新的选择。它价格低廉,易于使用和维护,而且采用集群技术可以构造超级计算机,其超强的处理能力可以取代价格昂贵的中大型机,为行业的高端应用开辟了新的方向。

集群技术是一种相对较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益。

21世纪,在世界各地正在运行的超级计算机中,有许多都是采用集群技术来实现的。

集群是由一些互相连接在一起的计算机构成的一个并行或分布式系统。这些计算机一起工作并运行一系列共同的应用程序,同时,为用户和应用程序提供单一的系统映射。从外部来看,它们仅仅是一个系统,对外提供统一的服务。集群内的计算机物理上通过电缆连接,程序上则通过集群软件连接。这些连接允许计算机使用故障应急与负载平衡功能,而故障应急与负载平衡功能在单机上是不可能实现的。

服务器集群系统通俗地讲就是把多台服务器通过快速通信链路连接起来,从外部看来,这些服务器就像一台服务器在工作,而对内来说,外面来的负载通过一定的机制动态地分配到这些节点机中去,从而达到超级服务器才有的高性能、高可用。

在实现本发明过程中,发明人发现现有技术中至少存在如下问题:

扩展快而负载能力差,需要频繁的增加服务器节点,或者由于物理因素,用户难以找到最近的服务器节点,响应速度慢。



技术实现要素:

为了克服现有的相关产品的所有不足,本发明提出一种分配服务器的方法及装置,可以解决服务器节点响应速度慢和负载能力差等缺点。

本发明实施例解决其技术问题所采用的技术方案是:

本发明实施例所提供的一种分配服务器的方法,包括:

接收来自客户端的服务请求并解析客户端的源IP地址;

根据所述源IP地址确定所述客户端所在地的经纬度;

将所述客户端的服务请求分配到与所述客户端的经纬度对应的服务器节点,其中,所述服务器节点按照经纬度进行服务区域的划分。

作为本发明的进一步改进,所述根据所述源IP地址确定客户端所在地的经纬度具体为:

获取客户端的源IP地址,根据IP比对表提供的数据,确定所述源IP地址的所在地,根据所述源IP地址的所在地,确定所述客户端所在地的经纬度。

作为本发明的进一步改进,还包括:

在集群部署地部署服务器节点,所述服务器节点在该集群部署地组成一致性哈希环。

作为本发明的进一步改进,所述服务器节点的数量大于或等于服务区域的数量。

作为本发明的进一步改进,服务器节点的数量为X,服务器的编号为N,则第N个服务器节点在哈希环上的位置为2^16*N/X。

本发明实施例所提供的一种分配服务器的装置,包括:采样模块、定位模块、处理模块以及服务器节点;

所述采样模块用于接收来自客户端的服务请求并解析客户端的源IP地址,将结果发送给定位模块;

所述定位模块用于对客户端的源IP地址进行定位,确定客户端的所在地以及经纬度;

所述处理模块用于将所述客户端的服务请求分配到与所述客户端的经纬度对应的服务器节点,其中,所述服务器节点按照经纬度进行服务区域的划分。

作为本发明的进一步改进,所述定位模块包括获取单元、数据库、对比单元和查找单元;

所述获取单元用于获取客户端的源IP地址;

所述数据库为IP比对表,所述IP比对表内每一个IP地址对应一个唯一的位置信息;

所述对比单元调用数据库的数据并将客户端源IP地址与数据库的数据进行对比,确定所述源IP地址的所在地;

所述查找单元根据源IP地址的所在地确定客户端所在地的经纬度。

作为本发明的进一步改进,所述服务器节点在该集群部署地组成一致性哈希环。

作为本发明的进一步改进,所述服务器节点数量大于或等于处理模块区域划分出来的区域数量。

作为本发明的进一步改进,服务器节点的数量为X,服务器的编号为N,则第N个服务器节点在哈希环上的位置为2^16*N/X。

与现有技术相比,本发明有以下优点:

本发明实施例通过获取客户端的源IP地址来确定客户端所在地的经纬度,并根据经纬度来对集群部署所在地进行区域划分,将客户端的的服务请求分配至其对应经纬度所在的划分区域内的服务器节点,可以有效提高服务器节点响应速度,同时按照用户密度即客户端服务请求的密度来部署服务器节点,可以解决负载能力差而需要频繁的增加服务器节点的缺点。

附图说明

图1为本发明所述分配服务器的的方法第一实施例的流程示意图;

图2为本发明所述分配服务器的装置第一实施例的原理结构图;

图3为本发明所述分配服务器的装置第三实施例的原理结构图。

具体实施方式

为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的较佳实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。

分配服务器的方法第一实施例

参阅图1所示,所述分配服务器的方法第一实施例的流程示意图,包括以下步骤:

S1:接收来自客户端的服务请求并解析客户端的源IP地址;

上述步骤S1中,所述接收来自客户端的服务请求并解析客户端的源IP地址具体为:接收客户端发出的服务请求,所述客户端的服务请求包括有域名和客户端的机器名,每一个机器名与其域名对应,所述域名与IP地址之间的对应关系记录在DNS记录中,存储客户端的机器名及机器名对应的DNS记录,将接收到的客户端的请求信息与存储的数据进行对比,将得到的客户端源IP地址输出。

S2:根据源IP地址确定客户端所在地的经纬度;

上述步骤S2中,所述根据所述源IP地址确定客户端所在地的经纬度具体为:获取客户端的源IP地址,根据IP比对表提供的数据,确定所述源IP地址的所在地,根据所述源IP地址的所在地,确定所述客户端所在地的经纬度;

每一个源IP地址都有其固定的位置,所述客户端的源IP地址根据IP比对表提供的数据可以准确定位其所在地,并根据该所在地确定其经纬度,所述IP比对表内每一个IP地址对应一个唯一的位置信息,并根据该经纬度将客户端的服务请求分配到服务对应区域的服务器节点,可以提高服务器节点对客户端服务请求的响应速度。

S3:将所述客户端的服务请求分配到与所述客户端的经纬度对应的服务器节点,其中,所述服务器节点按照经纬度进行服务区域的划分;

上述步骤S3中,将集群部署地按经纬度进行区域划分时,按照用户密度即客户端服务请求的密度进行区域大小的划分,若用户密度较大,则区域划分的越细,划分的区域数量越多,相对的,当用户密度较小时,则区域划分的越大,划分的区域数量越少,这样可以节约资源,防止因服务器节点闲置而产生浪费。按经纬度进行区域划分时划分的区域在地图上显示为经纬小块,比如纬度在北纬25到北纬26之间,经度在东京76到东经77之间的区域。

本发明实施例所述分配服务器的方法通过获取客户端的源IP地址来确定客户端所在地的经纬度,并根据经纬度来对集群部署所在地进行区域划分,将客户端的的服务请求分配至其对应经纬度所在的划分区域内的服务器节点,可以有效提高服务器节点响应速度,同时按照用户密度即客户端服务请求的密度来部署服务器节点,可以解决负载能力差而需要频繁的增加服务器节点的缺点。

分配服务器的方法第二实施例

在第一实施例的基础上,所述服务器节点用于响应客户端的服务请求;所述一致性哈希环数据处理方法采用2^16的环形的一致性哈希算法,根据区域划分出来的区域数量,在哈希环上对应设置同样数量的服务器节点。当有区域的服务请求过于密集时,服务于该区域的服务器节点可能会负载过大进而影响服务器的响应速度,使用户的体验效果降低,因此需要在增设服务于该区域的服务器节点,则服务器节点的数量可以大于区域数量,即多个服务器节点可以同时服务同一块区域。

服务器节点的数量为X,服务器的编号为N,则第N个服务器节点在哈希环上的位置为2^16*N/X;因为哈希环采用2^16的环形的一致性哈希算法,就是65536个节点,当有16个服务器节点时,即是每间隔4096个数设置一个服务器节点。

当集群部署地划分区域外的客户端发出服务请求时,按照就近原则将其分配到最近的服务器节点。

分配服务器的装置第一实施例

参阅图2所示,为所述分配服务器的装置第一实施例的结构示意图,包括:采样模块10、定位模块20以及处理模块30;所述采样模块10用于接收来自客户端的服务请求并解析客户端的源IP地址,将结果发送给定位模块20;所述定位模块20用于对客户端的源IP地址进行定位,确定客户端的所在地以及经纬度;所述处理模块30用于将所述客户端的服务请求分配到与所述客户端的经纬度对应的服务器节点,其中,所述服务器节点按照经纬度进行服务区域的划分。

本发明实施例所提供的一种分配服务器的装置,通过采样模块10获取客户端的源IP地址并通过定位模块20确定客户端所在地的经纬度,处理模块30根据经纬度来对集群部署所在地进行区域划分,将客户端的的服务请求分配至其对应经纬度所在的划分区域内的服务器节点,可以有效提高服务器节点响应速度,同时按照用户密度即客户端服务请求的密度来部署服务器节点,可以解决负载能力差而需要频繁的增加服务器节点的缺点。

分配服务器的装置第二实施例

在第一实施例的基础上,所述定位模块20内包含有IP比对表提供的数据,所述IP比对表内每一个IP地址对应一个唯一的位置信息,所述定位模块20根据该所在地可以确定客户端的经纬度。

所述处理模块30将集群部署地按经纬度进行区域划分时,按照用户密度即客户端服务请求的密度进行区域大小的划分,若用户密度较大,则区域划分的越细,划分的区域数量越多,相对的,当用户密度较小时,则区域划分的越大,划分的区域数量越少,这样可以节约资源,防止因服务器节点闲置而产生浪费。根据该经纬度将客户端的服务请求分配到服务对应区域的服务器节点,可以提高服务器节点对客户端服务请求的响应速度。所述处理模块30按经纬度进行区域划分时划分的区域在地图上显示为经纬小块,比如纬度在北纬25到北纬26之间,经度在东京76到东经77之间的区域。

所述服务器节点在该集群部署地组成一致性哈希环,所述一致性哈希环数据处理方法采用2^16的环形的一致性哈希算法,根据区域划分出来的区域数量,在哈希环上对应设置同样数量的服务器节点,当有区域的服务请求过于密集时,所述服务器节点的数量可以大于区域数量,即多个服务器节点服务同一块区域,服务器节点的数量为X,服务器的编号为N,则第N个服务器节点在哈希环上的位置为2^16*N/X;因为哈希环采用2^16的环形的一致性哈希算法,就是65536个节点,当有16个服务器节点时,即是每间隔4096个数设置一个服务器节点。

分配服务器的装置第三实施例

参阅图3所示,为所述分配服务器的装置的第三实施例,包括:采样模块10、定位模块20、处理模块30以及服务器节点。

所述采样模块10包括接收单元101、DNS解析单元102、缓存单元103和传输单元104;

所述接收单元101用于接收客户端发出的服务请求并将请求信息发送给DNS解析单元102,所述客户端的服务请求包括有域名和客户端的机器名,每一个机器名与其域名对应。

DNS(Domain Name System,域名装置),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析);网络之间互连的协议(IP)是Internet Protocol的外语缩写,中文缩写为“网协”,网络之间互连的协议也就是为计算机网络相互连接进行通信而设计的协议,IP地址具有唯一性。

所述缓存单元103用于存储机器名及机器名对应的DNS记录,每一条DNS记录代表一个域名与IP地址之间的对应关系。

所述DNS解析单元102用于调用缓存单元103的数据,并将接收到的客户端的请求信息与缓存单元103内的数据进行对比,通过客户端的域名或客户端的机器名即可确定其唯一的IP地址,所述DNS解析单元102控制传输单元104将得到的客户端源IP地址传输给定位模块20。

所述定位模块20包括获取单元201、数据库202、对比单元203和查找单元204;所述获取单元201用于接收传输单元104发送来的数据信息,该数据信息为发出服务请求的客户端源IP地址;所述数据库202为IP比对表,所述IP比对表内每一个IP地址对应一个唯一的位置信息;所述对比单元203调用数据库202的数据并将客户端源IP地址与数据库202的数据进行对比,,确定所述源IP地址的所在地;所述查找单元204根据源IP地址的所在地确定客户端所在地的经纬度。

所述处理模块30用于将所述客户端的服务请求分配到与所述客户端的经纬度对应的服务器节点,其中,所述服务器节点按照经纬度进行服务区域的划分;所述处理模块30将集群部署地按经纬度进行区域划分时,按照用户密度即客户端服务请求的密度进行区域大小的划分,若用户密度较大,则区域划分的越细,划分的区域数量越多,相对的,当用户密度较小时,则区域划分的越大,划分的区域数量越少,这样可以节约资源,防止因服务器节点闲置而产生浪费。根据该经纬度将客户端的服务请求分配到服务对应区域的服务器节点,可以提高服务器节点对客户端服务请求的响应速度。所述处理模块30按经纬度进行区域划分时划分的区域在地图上显示为经纬小块,比如纬度在北纬25到北纬26之间,经度在东京76到东经77之间的区域。

所述服务器节点用于响应客户端的服务请求;所述服务器节点在该集群部署地组成一致性哈希环,所述一致性哈希环数据处理方法采用2^16的环形的一致性哈希算法,根据区域划分出来的区域数量,在哈希环上对应设置同样数量的服务器节点,当有区域的服务请求过于密集时,所述服务器节点的数量可以大于区域数量,即多个服务器节点服务同一块区域,服务器节点的数量为X,服务器的编号为N,则第N个服务器节点在哈希环上的位置为2^16*N/X;因为哈希环采用2^16的环形的一致性哈希算法,就是65536个节点,当有16个服务器节点时,即是每间隔4096个数设置一个服务器节点。

一致性哈希算法提出了在动态变化的Cache环境中,判定哈希算法好坏的四个方面:平衡性、单调性、分散性和负载情况。

平衡性是指哈希的结果能够尽可能分布到所有的缓冲中去,这样可以使得所有的缓冲空间都得到利用;

单调性是指如果已经有一些内容通过哈希分派到了相应的缓冲中,又有新的缓冲加入到装置中。哈希的结果应能够保证原有已分配的内容可以被映射到原有的或者新的缓冲中去,而不会被映射到旧的缓冲集合中的其他缓冲区。在分布式环境中,终端有可能看不到所有的缓冲,而是只能看到其中的一部分。当终端希望通过哈希过程将内容映射到缓冲上时,由于不同终端所见的缓冲范围有可能不同,从而导致哈希的结果不一致,最终的结果是相同的内容被不同的终端映射到不同的缓冲区中。这种情况显然是应该避免的,因为它导致相同内容被存储到不同缓冲中去,降低了装置存储的效率。

分散性的定义就是上述情况发生的严重程度。好的哈希算法应能够尽量避免不一致的情况发生,也就是尽量降低分散性。

负载问题实际上是从另一个角度看待分散性问题。既然不同的终端可能将相同的内容映射到不同的缓冲区中,那么对于一个特定的缓冲区而言,也可能被不同的用户映射为不同的内容。

本发明实施例所提供的一种分配服务器的装置实施的具体过程为:采样模块10内的接收单元101接收客户端发出的服务请求,DNS解析单元102调用缓存单元103的数据,并将接收到的客户端的请求信息与缓存单元103内的数据进行对比,确定客户端唯一的IP地址。定位模块20内的获取单元201接收传输单元104发送来的客户端源IP地址,对比单元203调用数据库202的数据并将客户端源IP地址与数据库202的数据进行对比,确定当前源IP地址的客户端所在地的具体位置,查找单元204根据客户端所在地的具体位置确定客户端所在地的经纬度。处理模块30对集群部署地进行区域划分,并根据客户端的经纬度将客户端的服务请求分配到服务对应区域的服务器节点,服务器节点响应客户端的服务请求。按经纬度对集群部署地进行区域划分,一个或多个服务器节点对应服务于一块区域。

本发明实施例所提供的一种分配服务器的装置通过获取客户端的源IP地址来确定客户端所在地的经纬度,并根据经纬度来对集群部署所在地进行区域划分,将客户端的的服务请求分配至其对应经纬度所在的划分区域内的服务器节点,可以有效提高服务器节点响应速度,同时按照用户密度即客户端服务请求的密度来部署服务器节点,可以解决负载能力差而需要频繁的增加服务器节点的缺点。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1