发送和处理业务请求信息的方法和系统以及客户端装置制造方法
【专利摘要】本发明提供一种发送和处理业务请求信息的方法和系统以及客户端装置,能够有助于平衡服务端负载,保证客户端请求能够被可靠处理。该方法包括:客户端从本地保存的可用业务服务器列表中,按照预设的服务器权重选取一业务服务器,然后将客户端业务请求信息直接发送到选取的业务服务器;在选取的业务服务器不可用的情况下,所述客户端再次按照预设的业务服务器权重选取另一业务服务器,然后将客户端业务请求信息直接发送到该另一业务服务器。
【专利说明】发送和处理业务请求信息的方法和系统以及客户端装置
【技术领域】
[0001]本发明涉及一种发送和处理业务请求信息的方法和系统以及客户端装置。
【背景技术】
[0002]通过客户端采集数据发送至服务端进行分析这一策略已成为众多监控系统的一个重要解决方案,通常情况下,客户端分布广,数目不定,且可能会动态增减,因此在客户端数目较多,单个客户端传输数据量较大时,要保证服务端为客户端提供稳定可靠的服务面临着巨大的挑战。
[0003]为保证服务稳定可靠,现有的技术通常采用的平衡服务端负载的方法大致有以下两种:
[0004]Nginx软负载均衡:Nginx作为负载均衡服务器通常应用于web层的请求流量分发,通过内部均衡算法将请求转发到不同的服务端,保证服务响应的稳定和可靠性;
[0005]F5硬件负载均衡:F5的全称为F5BIG-1P LTM(本地流量管理器),是一台对流量和内容进行管理分配的设备,它统一接收全部请求,然后按照设定好的算法将这些请求分配给这个负载均衡组中的所有成员,以此来实现请求(负载)的均衡分配。BIG/IP利用定义在其上面的虚拟IP地址来为用户的一个或多个应用服务器提供服务。因此,它能够为大量的基于TCP/IP的网络应用提供服务器负载均衡服务。BIG/IP连续地对目标服务器进行L4到L7合理性检查,当用户通过VIP请求目标服务器服务时,BIG/IP根椐目标服务器之间性能和网络健康情况,选择性能最佳的服务器响应用户的请求。
[0006]F5负载均衡流程如下:
[0007]1.客户发出服务请求到VIP ;
[0008]2.BIGIP接收到请求,将数据包中目的IP地址改为选中的后台服务器IP地址,然后将数据包发出到后台选定的服务器;
[0009]3.后台服务器收到后,将应答包按照其路由发回到BIGIP ;
[0010]4.BIGIP收到应答包后将其中的源地址改回成VIP的地址,发回客户端,由此就完成了 一个标准的服务器负载平衡的流程。
[0011]Nginx软负载均衡与F5的设计架构相类似,示于图1中。图1是根据现有技术中的一种负载均衡设计架构的示意图。如图1所示,多个客户端111、112、113等将业务请求发送到同一个负载均衡器12上,再由该负载均衡器12向各业务服务器131、132、133等转发业务请求。从图1可以看出,各个客户端都将请求发到同一个负载均衡器上,均衡器通过负载均衡算法将请求分发到负载均衡器下面挂载的具体的服务端。
[0012]负载均衡设备本身为单点配置,因此上述设计架构的最大缺点在于均衡器本身资源局限性,即网络流量将是最大且难以解决的瓶颈。当客户端数目过多,请求数据量非常大时,一旦网络流量达到均衡器或者均衡服务器网卡的上限,更多的客户端请求将无法正常转发处理,这不仅会导致客户端的请求处理缓慢,堵塞客户端请求,进一步还可能出现请求超时或者数据丢失等严重问题。
【发明内容】
[0013]有鉴于此,本发明提供一种发送和处理业务请求信息的方法和系统以及客户端装置,能够有助于平衡服务端负载,保证客户端请求能够被可靠处理。
[0014]为实现上述目的,根据本发明的一个方面,提供了 一种发送业务请求信息的方法。
[0015]本发明的发送业务请求信息的方法包括:客户端从本地保存的可用业务服务器列表中,按照预设的服务器权重选取一业务服务器,然后将客户端业务请求信息直接发送到选取的业务服务器;在选取的业务服务器不可用的情况下,所述客户端再次按照预设的业务服务器权重选取另一业务服务器,然后将客户端业务请求信息直接发送到该另一业务服务器。
[0016]可选地,所述按照预设的服务器权重选取一业务服务器的步骤之前,还包括:获取网络侧保存的当前的可用业务服务器列表,所述可用业务服务器列表包含多个表项,各个表项中包含可用业务服务器的标识,并且包含同一个业务服务器的标识的表项的个数与该业务服务器的预设权重成正比;所述按照预设的业务服务器权重选取一业务服务器的步骤包括:从所述当前的可用业务服务器列表中随机选取一业务服务器。
[0017]根据本发明的另一方面,提供了一种处理业务请求信息的方法。
[0018]本发明的处理业务请求信息的方法包括:存储系统接收业务服务器发送的该业务服务器的标识然后保存;中心服务器在接收到客户端发送的用于查询业务服务器的请求信息后,从所述存储系统获取多个状态为有效的业务服务器的标识然后与预设的各业务服务器权重的信息一并发送给所述客户端,以供该客户端从中根据权重选择业务服务器;被所述客户端选择的业务服务器接收该客户端直接发送的客户端业务请求信息。
[0019]可选地,所述与预设的各业务服务器权重的信息一并发送给所述客户端的步骤包括:将当前的可用业务服务器列表发送给所述客户端,所述可用业务服务器列表包含多个表项,各个表项中包含可用业务服务器的标识,并且包含同一个业务服务器的标识的表项的个数与该业务服务器的预设权重成正比。
[0020]可选地,存储系统接收业务服务器发送的该业务服务器的标识之后,还包括:所述业务服务器每隔预设的时间间隔,向所述存储系统发送当前的时间戳;所述状态为有效的业务服务器是在最近的所述时间间隔的时长以内向所述存储系统发送时间戳的业务服务器。
[0021 ] 根据本发明的又一方面,提供了 一种客户端装置。
[0022]本发明的客户端装置包括:选择模块,用于从本地保存的可用业务服务器列表中,按照预设的服务器权重选取一业务服务器;发送模块,用于将客户端业务请求信息直接发送到所述选择模块选取的业务服务器;所述选择模块还用于在选取的业务服务器不可用的情况下,再次按照预设的业务服务器权重选取另一业务服务器。
[0023]可选地,还包括查询模块,用于获取网络侧保存的当前的可用业务服务器列表,所述可用业务服务器列表包含多个表项,各个表项中包含可用业务服务器的标识,并且包含同一个业务服务器的标识的表项的个数与该业务服务器的预设权重成正比;所述选择模块还用于:从所述查询模块获取的当前的可用业务服务器列表中随机选取一业务服务器。
[0024]根据本发明的又一方面,提供了一种处理业务请求信息的系统。[0025]本发明的处理业务请求信息的系统包括:存储系统模块,用于接收业务服务器发送的该业务服务器的标识然后保存;中心服务模块,用于在接收到客户端发送的用于查询业务服务器的请求信息后,从所述存储系统模块中获取多个状态为有效的业务服务器的标识然后与预设的各业务服务器权重的信息一并发送给所述客户端,以供该客户端从中根据权重选择业务服务器;业务服务模块,用于接收所述客户端直接发送的客户端业务请求信肩、O
[0026]可选地,所述中心服务模块还用于:将当前的可用业务服务器列表发送给所述客户端,所述可用业务服务器列表包含多个表项,各个表项中包含可用业务服务器的标识,并且包含同一个业务服务器的标识的表项的个数与该业务服务器的预设权重成正比。
[0027]可选地,所述业务服务模块还用于在向所述存储系统模块发送业务服务器的标识之后,每隔预设的时间间隔,向所述存储系统模块发送当前的时间戳;所述状态为有效的业务服务器是在最近的所述时间间隔的时长以内向所述存储系统发送时间戳的业务服务器。
[0028]根据本发明的技术方案,将业务服务器的有效状态信息提供给客户端,客户端选择业务服务器之后直接向被选业务服务器发送业务请求信息,实现了在客户端一侧进行负载均衡,无需网络侧专门的负载均衡设备,从而解决了因在服务端负载均衡引起的网络瓶颈问题。因为是由客户端随机选择的有效服务器来受理客户端请求,所以在实现客户端请求能够被有效响应的同时避免了负载均衡设备本身导到的网络瓶颈问题,有助于平衡服务端负载,保证客户端请求能够被可靠处理。
【专利附图】
【附图说明】
[0029]附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
[0030]图1是根据现有技术中的一种负载均衡设计架构的示意图;
[0031]图2是根据本发明实施例的负载均衡架构的示意图;
[0032]图3是根据本发明实施例的客户端装置的基本结构的示意图;
[0033]图4是根据本发明实施例的处理业务请求信息的系统的基本结构的示意图。
【具体实施方式】
[0034]以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识至IJ,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0035]图2是根据本发明实施例的负载均衡架构的示意图。如图2所示,在网络侧(图中实线20的右侧)有中心服务器21、存储服务器22以及多个业务服务器231、232、233等。在终端侧有多个客户端241、242、243等。上述的中心服务器21、存储服务器22可以是服务器集群。
[0036]在业务服务器启动之后,将自身的基本信息注册到存储服务器,包括IP地址、端口号、以及预设的权重和当前时间。这些信息可以用表项的形式保存在存储服务器中。另夕卜,为了体现业务服务器的可用性,业务服务器每过一个预设的时间间隔(例如40S),就向存储服务器发送当前时间以表示自身当前状态为有效,能够接受业务请求。[0037]客户端启动时查询当前有哪些业务服务器为有效状态,具体可以调用中心服务器发布的查询接口。中心服务器在收到客户端的查询时,从存储服务器中获取状态为有效的业务服务器的列表。状态为有效的业务服务器是在最近的上述时间间隔(例如40S)的时长以内向存储系统发送时间戳的业务服务器。同时中心服务器获得这些业务服务器的权重。最后将带有权重信息的业务服务器列表发送给客户端。
[0038]客户端接收中心服务器发送的该列表然后保存到本地,根据权重从该列表中选择一业务服务器,然后将客户端业务请求直接发送给该业务服务器,而不是像现有技术那样先发送给一个负载均衡装置。如果该业务服务器不可用,客户端再根据权重选择另一业务服务器。此时还可以将不可用的业务服务器从本地保存的列表中删除。例如,客户端243从本地保存的列表中选择了业务服务器232,然后就将客户端业务请求直接发送给业务服务器232,此时客户端243与业务服务器232之间为直接连接,如图2所示。
[0039]中心服务器向客户端发送的可用的业务服务器的列表中,可以是包含同一个业务服务器的标识的表项的个数与该业务服务器的预设权重成正比,即同一个业务服务器可能出现在多个表项中,并且客户端从该表中选择业务服务器时是随机选择,这样权重较大的业务服务器因在表中出现次数较多从而更可能被客户端选择。
[0040]图3是根据本发明实施例的客户端装置的基本结构的示意图。该客户端装置可以设置在客户端设备中,例如个人计算机。如图3所示,客户端装置30主要包括选择模块31和发送模块32。
[0041]选择模块31用于从本地保存的可用业务服务器列表中,按照预设的服务器权重选取一业务服务器;发送模块32用于将客户端业务请求信息直接发送到所述选择模块选取的业务服务器;选择模块31还用于在选取的业务服务器不可用的情况下,再次按照预设的业务服务器权重选取另一业务服务器。
[0042]客户端装置30还可包括查询模块(图中未示出),用于获取网络侧保存的当前的可用业务服务器列表,该可用业务服务器列表包含多个表项,各个表项中包含可用业务服务器的标识,并且包含同一个业务服务器的标识的表项的个数与该业务服务器的预设权重成正比;这样,选择模块31还可用于从查询模块获取的当前的可用业务服务器列表中随机选取一业务服务器。
[0043]图4是根据本发明实施例的处理业务请求信息的系统的基本结构的示意图。如图4所示,处理业务请求信息系统40由多个分布在上述的各个服务器中的模块构成,主要包括设置在存储服务器中的存储系统模块41、设置在中心服务器中的中心服务模块42、以及设置在业务服务器中的业务服务模块43。
[0044]存储系统模块41用于接收业务服务器发送的该业务服务器的标识然后保存;中心服务模块42用于在接收到客户端发送的用于查询业务服务器的请求信息后,从存储系统模块41中获取多个状态为有效的业务服务器的标识然后与预设的各业务服务器权重的信息一并发送给客户端,以供该客户端从中根据权重选择业务服务器;业务服务模块43用于接收客户端直接发送的客户端业务请求信息。
[0045]中心服务模块42还可用于:将当前的可用业务服务器列表发送给客户端,该可用业务服务器列表包含多个表项,各个表项中包含可用业务服务器的标识,并且包含同一个业务服务器的标识的表项的个数与该业务服务器的预设权重成正比。[0046]业务服务模块43还可用于在向存储系统模块41发送业务服务器的标识之后,每隔预设的时间间隔,向存储系统模块41发送当前的时间戳。
[0047]根据本发明实施例的技术方案,根据本发明的技术方案,将业务服务器的有效状态信息提供给客户端,客户端选择业务服务器之后直接向被选业务服务器发送业务请求信息,实现了在客户端一侧进行负载均衡,无需网络侧专门的负载均衡设备,从而解决了因在服务端负载均衡引起的网络瓶颈问题。因为是由客户端随机选择的有效服务器来受理客户端请求,所以在实现客户端请求能够被有效响应的同时避免了负载均衡设备本身导到的网络瓶颈问题,有助于平衡服务端负载,保证客户端请求能够被可靠处理。
[0048]以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本发明的方法和设备的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。
[0049]因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来开发出的任何存储介质。
[0050]还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
[0051]上述【具体实施方式】,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
【权利要求】
1.一种发送业务请求信息的方法,其特征在于,包括: 客户端从本地保存的可用业务服务器列表中,按照预设的服务器权重选取一业务服务器,然后将客户端业务请求信息直接发送到选取的业务服务器; 在选取的业务服务器不可用的情况下,所述客户端再次按照预设的业务服务器权重选取另一业务服务器,然后将客户端业务请求信息直接发送到该另一业务服务器。
2.根据权利要求1所述的方法,其特征在于, 所述按照预设的服务器权重选取一业务服务器的步骤之前,还包括:获取网络侧保存的当前的可用业务服务器列表,所述可用业务服务器列表包含多个表项,各个表项中包含可用业务服务器的标识,并且包含同一个业务服务器的标识的表项的个数与该业务服务器的预设权重成正比; 所述按照预设的业务服务器权重选取一业务服务器的步骤包括:从所述当前的可用业务服务器列表中随机选取一业务服务器。
3.—种处理业务请求信息的方法,其特征在于,包括: 存储系统接收业务服务器发送的该业务服务器的标识然后保存; 中心服务器在接收到客户端发送的用于查询业务服务器的请求信息后,从所述存储系统获取多个状态为有效的业务服务器的标识然后与预设的各业务服务器权重的信息一并发送给所述客户端,以供该客户端从中根据权重选择业务服务器; 被所述客户端选择的业务服务器接收该客户端直接发送的客户端业务请求信息。
4.根据权利要求3所述的方`法,其特征在于,所述与预设的各业务服务器权重的信息一并发送给所述客户端的步骤包括:将当前的可用业务服务器列表发送给所述客户端,所述可用业务服务器列表包含多个表项,各个表项中包含可用业务服务器的标识,并且包含同一个业务服务器的标识的表项的个数与该业务服务器的预设权重成正比。
5.根据权利要求3或4所述的方法,其特征在于, 存储系统接收业务服务器发送的该业务服务器的标识之后,还包括:所述业务服务器每隔预设的时间间隔,向所述存储系统发送当前的时间戳; 所述状态为有效的业务服务器是在最近的所述时间间隔的时长以内向所述存储系统发送时间戳的业务服务器。
6.一种客户端装置,其特征在于,包括: 选择模块,用于从本地保存的可用业务服务器列表中,按照预设的服务器权重选取一业务服务器; 发送模块,用于将客户端业务请求信息直接发送到所述选择模块选取的业务服务器; 所述选择模块还用于在选取的业务服务器不可用的情况下,再次按照预设的业务服务器权重选取另一业务服务器。
7.根据权利要求6所述的客户端装置,其特征在于, 还包括查询模块,用于获取网络侧保存的当前的可用业务服务器列表,所述可用业务服务器列表包含多个表项,各个表项中包含可用业务服务器的标识,并且包含同一个业务服务器的标识的表项的个数与该业务服务器的预设权重成正比; 所述选择模块还用于:从所述查询模块获取的当前的可用业务服务器列表中随机选取一业务服务器。
8.—种处理业务请求信息的系统,其特征在于,包括: 存储系统模块,用于接收业务服务器发送的该业务服务器的标识然后保存; 中心服务模块,用于在接收到客户端发送的用于查询业务服务器的请求信息后,从所述存储系统模块中获取多个状态为有效的业务服务器的标识然后与预设的各业务服务器权重的信息一并发送给所述客户端,以供该客户端从中根据权重选择业务服务器; 业务服务模块,用于接收所述客户端直接发送的客户端业务请求信息。
9.根据权利要求8所述的系统,其特征在于,所述中心服务模块还用于:将当前的可用业务服务器列表发送给所述客户端,所述可用业务服务器列表包含多个表项,各个表项中包含可用业务服务器的标识,并且包含同一个业务服务器的标识的表项的个数与该业务服务器的预设权重成正比。
10.根据权利要求8或9所述的系统,其特征在于, 所述业务服务模块还用于在向所述存储系统模块发送业务服务器的标识之后,每隔预设的时间间隔,向所述存储系统模块发送当前的时间戳; 所述状态为有效的业务服务器是在最近的所述时间间隔的时长以内向所述存储系统发送时间戳的业务服务器 。
【文档编号】H04L29/08GK103442030SQ201310330017
【公开日】2013年12月11日 申请日期:2013年7月31日 优先权日:2013年7月31日
【发明者】韩铭, 陈泽洪 申请人:北京京东尚科信息技术有限公司, 北京京东世纪贸易有限公司