一种用于服务器集群的路由服务器及路由服务方法与流程

文档序号:11156809阅读:437来源:国知局
一种用于服务器集群的路由服务器及路由服务方法与制造工艺

本发明涉及服务器技术领域,尤其涉及一种用于服务器集群的路由服务器及路由服务方法。



背景技术:

在现在很多系统或者APP中,都存在使用消息推送的功能。通过在云端和客户端之间建立一条稳定、可靠的长连接,为开发者提供向客户端应用推送实时消息的服务,帮助开发者有效地拉动用户活跃。而所有的消息推送都需要有后台服务器进行相关的支持才能够实现,保持长链接,才能够实现消息发送以及接收的实时性。

由于客户端和服务端之间需要保持一个长连接,因此,如果客户端的数量很多的话,就需要服务端保持很多数目的长连接。而实际情况是,一般APP系统的客户端数量会达到几十上百万之多,如果这么多的连接都连到同一台服务器上,会给该台服务器造成很大的压力,导致服务器不可使用,宕机或者其他问题。

目前,APP系统通常采用服务器集群提供服务。通常在服务器集群前端提供一个路由服务器,路由服务器由提供接口给客户端访问,获取可访问的路由列表。而后客户端再从中选择一个路由地址,进行真正的数据访问。然而目前的路由服务器通常采用预先配置路由信息,因此当访问量增大时,难以保证服务访问的均衡,同时致使客户端请求响应的速度慢,用户体验非常差。



技术实现要素:

本发明的主要目的在于提出一种用于服务器集群的路由服务器及路由服务方法,用以解决技术中路由服务器难以保证服务器集群负载均衡的问题。

为实现上述发明目的,本发明采用下述的技术方案:

依据本发明的一个方面,提供一种用于服务器集群的路由服务器,包括:

获取单元,用于当接收到客户端的连接请求后,获取所述连接请求所携带的信息;

选取单元,用于根据所述连接请求中所携带的信息选取所述服务器集群中的服务器;

反馈单元,用于生成所述服务器的路由列表,并将所述路由列表发送至所述客户端,以便所述客户端连接相应的服务器。

进一步地,所述获取单元,还用于获取所述连接请求中所携带的校验信息,并判断所述校验信息是否符合预设要求;

当判断符合时,则根据所述连接请求中所携带的信息选取所述服务器集群中的服务器。

进一步地,所述选取单元,具体用于:

根据所述连接请求中所携带的应用标识确定可提供服务的服务器;

获取所述可提供服务的服务器的运行参数;

根据所述运行参数计算所述服务器的负载情况,并选取负载情况满足预设条件的服务器。

进一步地,所述选取单元,还用于:

获取所述可提供服务的服务器的运行参数前,判断所述连接请求中所携带的应用版本是否为新版本;

当所述应用版本为旧版本时,获取所述可提供服务的服务器的运行参数;

当所述应用版本为新版本时,则从所述可提供服务的服务器中直接选取提供新版本服务的服务器。

进一步地,所述选取单元,还用于根据所述连接请求中所携带的应用标识确定可提供服务的服务器前,获取所述连接请求中所携带的唯一标识码;

根据所述唯一标识码判断所述设备是否需要升级;

当判断所述设备需要升级时,从所述服务器集群中选取提供设备升级的服务器;否则,根据所述应用标识确定可提供服务的服务器。

依据本发明的一个方面,提供一种用于服务器集群的路由服务方法,包括:

当接收到客户端的连接请求后,获取所述连接请求所携带的信息;

根据所述连接请求中所携带的信息选取所述服务器集群中的服务器;

生成所述服务器的路由列表,并将所述路由列表发送至所述客户端,以便所述客户端连接相应的服务器。

进一步地,所述获取所述连接请求所携带的信息,包括:

获取所述连接请求中所携带的校验信息,并判断所述校验信息是否符合预设要求;

当判断符合时,则根据所述连接请求中所携带的信息选取所述服务器集群中的服务器。

进一步地,所述根据所述连接请求中所携带的信息选取所述服务器集群中的服务器,具体包括:

根据所述连接请求中所携带的应用标识确定可提供服务的服务器;

获取所述可提供服务的服务器的运行参数;

根据所述运行参数计算所述服务器的负载情况,并选取负载情况满足预设条件的服务器。

进一步地,所述获取所述可提供服务的服务器的运行参数前,所述方法还包括:

判断所述连接请求中所携带的应用版本是否为新版本;

当所述应用版本为旧版本时,获取所述可提供服务的服务器的运行参数;

当所述应用版本为新版本时,则从所述可提供服务的服务器中直接选取提供新版本服务的服务器。

进一步地,所述根据所述连接请求中所携带的应用标识确定可提供服务的服务器前,所述方法还包括;

获取所述连接请求中所携带的唯一标识码;

根据所述唯一标识码判断所述设备是否需要升级;

当判断所述设备需要升级时,从所述服务器集群中选取提供设备升级的服务器;否则,根据所述应用标识确定可提供服务的服务器。

本发明提出的用于服务器集群的路由服务器及路由服务方法,通过获取请求中所携带的信息选择相应的路由策略;并根据相应的路由策略选择所对应的服务器,可有效减轻服务器的负担,确保服务器能够更有效地进行消息传输;通过在连接请求中配置版本信息以及设备的唯一标识码信息,及时获取使用灰度版本的客户端信息,第一时间将相应的请求进行分流,提高了客户端请求的响应速度,提升了用户的体验。

附图说明

图1为本发明实施例中用于服务器集群的路由服务器的原理框图;

图2为本发明实施例中路由服务器及服务器集群的部署架构图;

图3为本发明实施例中用于服务器集群的路由服务方法的流程图;

图4为本发明实施例中客户端与路由服务器的交互流程图;

图5为本发明实施例中路由服务器处理连接请求的序列图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

现在将参考附图描述实现本发明各个实施例的移动终端。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,"模块"与"部件"可以混合地使用。

本发明实施例提供一种用于服务器集群的路由服务器。该路由服务器作为服务器集群的前置服务,可以智能的控制客户端要连接的接入服务器,提高服务器的处理效率,实现长连接的负载均衡,同时还可以隔离app防止相互影响以及实现更高级别的灰度引流。

如图1所示,本发明实施例中所提供的用于接入服务器集群的路由服务器,具体包括:

获取单元11,用于当接收到客户端的连接请求后,获取连接请求所携带的信息;

选取单元12,用于根据连接请求中所携带的信息选取服务器集群中的服务器;

反馈单元13,用于生成服务器的路由列表,并将路由列表发送至客户端,以便客户端连接相应的服务器。

本发明实施例所提供的用于服务器集群的路由服务器,通过获取请求中所携带的信息选择相应的路由策略;并根据相应的路由策略选择所对应的服务器。本发明根据请求中的请求信息选择相应的路由策略,减轻了服务器的负担,确保服务器能够更有效地进行消息传输,提高了服务器的处理效率;同时使得客户端的请求快速得到响应,提升了用户的体验。

如图1所示,本发明实施例所提供的路由服务器的应用架构图。本发明实施例中路由服务器可以采用集群的形式,便于及时处理的客户端高并发请求。具体地,可以采用多个的tomcat等应用服务器组成集群。该实施例中服务器集群包括Push中控接入服务集群和独立APP接入服务集群。终端的某些应用(例如系统自带应用)采用的是集中控制和管理,针对该类应用的请求,由Push中控接入服务集群为终端提供服务。而针对一些独立的应用,例如QQ等,通过独立APP接入服务集群提供服务。客户端(Client SDK)与路由服务器集群之间采用Http通信协议进行通信,与Push中控接入服务集群与独立APP接入服务集群之间采用SSL通信协议进行通信。

下面结合图1对本发明中路由服务器的各个单元进行详细介绍。

获取单元11,用于当接收到客户端的连接请求后,获取连接请求中所携带的信息。

其中,获取单元11具体用于在接收到客户端的连接请求后,首先获取连接请求中携带的校验信息;判断校验信息是否符合本地设置的预设要求;当符合,再进一步获取连接请求中携带的请求信息;当判断不符合时,则拒绝客户端的请求,并向客户端发送拒绝响应。

其中,在客户端发送连接请求时,向路由服务器发送Https请求。在该请求中携带的校验信息,包括用户参数、签名、APP状态中的一种或多种。

具体地,获取单元11对连接请求中携带的校验信息进行校验时,包括:

当获取客户端的用户参数后,判断用户参数是否存在本地预存的设备参数一致,若一致时,在继续后续处理;这里,用户参数包括用户名以及密码;和/或,利用签名对客户端进行认证,当认证通过后,在进行后续处理。对于利用签名的验证过程已属于领域技术人员所熟知的技术,这里不再进行赘述。和/或,验证APP的状态信息,当APP处理离线状态时,不需要对该连接请求进行处理,只有APP处于在线时,再进行后续处理。

进一步地,获取单元11获取连接请求中所携带的信息包括应用标识、应用版本以及设备的唯一标识码(IMEI码)。其中,应用标识即APP的ID,根据该应用标识可以将APP相互隔离开,同时根据APP ID可以区分服务是否Push中控接入服务集群或是独立APP接入服务集群提供服务。而应用版本信息是指APP的版本信息,APP系统中两份不同的版本APP,一部分用户使用新版本,一部分用户采用旧版本。两个版本同时提供服务。

选取单元12,用于根据连接请求中携带的信息选择服务器集群中的服务器。

上述提及,获取单元11获取连接请求中所携带的信息包括应用标识、应用版本、设备的唯一标识码,这里选取单元12根据不同的信息选择不同的路由策略,进而获取所要提供服务的服务器。

本发明一实施例中,选取单元12首先根据设备的唯一标识码筛选,接着再根据应用标识、应用版本进行筛选。

具体地,选取单元12根据连接请求中携带的设备的唯一标识码判断所述设备是否需要升级;当判断设备需要升级时,从服务器集群中选取提供设备升级的服务器即可;当判断设备不需升级时,再根据应用情况进一步筛选。

其中,选取单元12只根据应用标识进一步筛选时,根据应用标识确定可提供服务的服务器。具体地,可以根据应用标识确定是由Push中控接入服务集群还是接入独立APP接入服务集群提供服务。

获取可提供服务的服务器的运行参数;

根据运行参数计算所述服务器的负载情况,并选取负载情况满足预设条件的服务器。

这里,一实施例中,运行参数信息包括当前在线用户数和/或服务器的CPU利用率、内存利用率、带宽利用率或磁盘利用率等性能参数。根据服务器的性能参数和所承担的用户数确定。具体地,例如,首先确定性能参数是否满足预设阈值,当满足时,不做分配。当不满足时,则获取服务器的在线用户数,当用户数大于预设阈值时,则不做分配处理。需要说明的是,这里对于判断负载的情况仅作解释和说明,不用于对本发明的限定。

其中,选取单元12根据应用标识以及应用版本进一步筛选时,根据应用标识确定可提供服务的服务器;

判断连接请求中所携带的应用版本是否为新版本;

当应用版本为旧版本时,获取可提供服务的服务器的运行参数;获取可提供服务的服务器的运行参数;根据运行参数计算服务器的负载情况,并选取负载情况满足预设条件的服务器;

当应用版本为新版本时,则从可提供服务的服务器中直接选取提供新版本服务的服务器。

可知,通过选取单元12可以选择对应的路由策略,并根据具体的路由策略智能的控制客户端要连接的接入服务器,实现APP的隔离,避免相互产生影响。同时,通过对版本信息进行验证,实现灰度引流,有利于APP新版本的发布和维护。

反馈单元13,用于生成服务器的路由列表,并将路由列表发送至所述客户端,以便所述客户端连接相应的服务器。

具体地,反馈单元13在生成服务器的路由列表时,列表中包括一条或者多条路由列表信息。该路由列表信息以域名的方式生成,每个域名相当于一个接入服务的集群。其中,返回的路由列表中,存在主备两种类型的路由列表,便于实现线路故障后,实现冗余,提高接通的成功率。

进一步地,本发明的一个实施例中,获取单元11,还用于在选取单元12选取服务器的同时,从缓存中获取一条令牌token信息。该令牌信息中限定了客户端访问服务器的时间信息。根据该令牌信息,客户端实现与指定服务器的信息交互。而反馈单元13,在反馈服务器的路由列表时,将令牌信息与路由列表一并发送至客户端中。

进一步地,本发明的一个实施例中,获取单元11,还用于选取单元12选取服务器的同时,从本地获取预先存储的访问策略。该访问策略用于客户端访问路由列表信息的策略。具体地,包括,每次每个地址的轮询次数是多少;和/或每次所有路由地址访问失败后,间隔多久再次进行接口的访问;和/或接口间隔访问的最大次数是多少,之后均按照一定时间间隔进行访问(比如一天);还可采用非固定间隔的形式。该访问策略可以由用户自行设定。而反馈单元13,在反馈服务器的路由列表时,将访问策略与路由列表一并发送至客户端中。

具体地,一实施例中,客户端在本地执行轮询机制,逐个从本地路由列表中拼装请求地址,进行请求操作。每个路由地址进行3次的请求操作,如请求失败后,则进行下一个路由地址的请求操作。当所有的本地路由地址均轮询过后,都不能访问时,客户端进行等待,超过3小时左右,再次请求路由服务器,进行路由列表的获取操作。如再次获取到的路由列表,按照上述方式访问同样失败,且失败次数超过5次时,均按照每隔1天的时间段进行路由列表的请求操作。

基于上述可知,通过在路由服务器配置客户端的访问策略,能够实现更多样化的客户端访问方式,做到服务端可控客户端的访问请求。此外,通过设置访问策略在一定程度上减少客户端对路由服务器的请求,提高路由服务器集群的吞吐量。

如图3所示,本发明实施例中所提供的用于接入服务器集群的路由服务方法,具体包括:

步骤301,当接收到客户端的连接请求后,获取连接请求所携带的信息;

步骤302,根据连接请求中所携带的信息选取服务器集群中的服务器;

步骤303,生成服务器的路由列表,并将路由列表发送至客户端,以便客户端连接相应的服务器。

本发明实施例所提供的用于服务器集群的路由服务方法,通过获取请求中所携带的信息选择相应的路由策略;并根据相应的路由策略选择所对应的服务器。本发明根据请求中的请求信息选择相应的路由策略,减轻了服务器的负担,确保服务器能够更有效地进行消息传输,提高了服务器的处理效率;同时使得客户端的请求快速得到响应,提升了用户的体验。

下面图4和图5对本发明中路由服务方法的各个步骤进行详细说明。

步骤301,用于当接收到客户端的连接请求后,获取连接请求中所携带的信息。

在接收到客户端的连接请求后,首先获取连接请求中携带的校验信息;由路由控制判断校验信息是否符合本地设置的预设要求;当符合,再进一步获取连接请求中携带的请求信息;当判断不符合时,则拒绝客户端的请求,并向客户端发送拒绝响应。

其中,在客户端发送连接请求时,向路由服务器发送Https请求。在该请求中携带的校验信息,包括用户参数、签名、APP状态中的一种或多种。

具体地,路由控制对连接请求中携带的校验信息进行校验时,包括:

当获取客户端的用户参数后,判断用户参数是否存在本地预存的设备参数一致,若一致时,在继续后续处理;用户参数包括用户名以及密码;和/或,利用签名对客户端进行认证,当认证通过后,在进行后续处理。对于利用签名的验证过程已属于领域技术人员所熟知的技术,这里不再进行赘述。和/或,验证APP的状态信息,当APP处理离线状态时,不需要对该连接请求进行处理,只有APP处于在线时,再进行后续处理。

进一步地,由路由策略服务提供路由的策略。具体的,获取连接请求中所携带的信息包括应用标识、应用版本。其中,应用标识即APP的ID,根据该应用标识可以将APP相互隔离开,同时根据APP ID可以区分服务是否Push中控接入服务集群或是独立APP接入服务集群提供服务。而应用版本信息是指APP的版本信息,APP系统中两份不同的版本APP,一部分用户使用新版本,一部分用户采用旧版本。两个版本同时提供服务。

步骤302,根据连接请求中携带的信息选择服务器集群中的服务器。

获取连接请求中所携带的信息,包括应用标识、应用版本、设备的唯一标识码,这里根据不同的信息选择不同的路由策略,进而获取所要提供服务的服务器。

本发明一实施例中,首先根据设备的唯一标识码筛选,接着再根据应用标识和应用版本进行筛选。

具体地,根据连接请求中携带的设备的唯一标识码判断所述设备是否需要升级;当判断设备需要升级时,从服务器集群中选取提供设备升级的服务器即可;当判断设备不需升级时,再根据应用情况进一步筛选。

其中,当只根据应用标识进一步筛选时,该方法包括:

根据应用标识确定可提供服务的服务器。具体地,可以根据应用标识确定是由Push中控接入服务集群还是接入独立APP接入服务集群提供服务。

获取可提供服务的服务器的运行参数;

根据运行参数计算所述服务器的负载情况,并选取负载情况满足预设条件的服务器。

这里,一实施例中,运行参数信息包括当前在线用户数和/或服务器的CPU利用率、内存利用率、带宽利用率或磁盘利用率等性能参数。根据服务器的性能参数和所承担的用户数确定。具体地,例如,首先确定性能参数是否满足预设阈值,当满足时,不做分配。当不满足时,则获取服务器的在线用户数,当用户数大于预设阈值时,则不做分配处理。需要说明的是,这里对于判断负载的情况仅作解释和说明,不用于对本发明的限定。

其中,当根据应用标识以及应用版本进一步筛选时,该方法包括:

根据应用标识确定可提供服务的服务器;

判断连接请求中所携带的应用版本是否为新版本;

当应用版本为旧版本时,获取可提供服务的服务器的运行参数;获取可提供服务的服务器的运行参数;根据运行参数计算服务器的负载情况,并选取负载情况满足预设条件的服务器;

当应用版本为新版本时,则从可提供服务的服务器中直接选取提供新版本服务的服务器。

可知,本发明通过选择对应的路由策略,根据具体的路由策略智能的控制客户端要连接的接入服务器,实现APP的隔离,避免相互产生影响。同时,通过对版本信息进行验证,实现灰度引流,有利于APP新版本的发布和维护。

步骤303,生成服务器的路由列表,并将所路由列表发送至所述客户端,以便所述客户端连接相应的服务器。

由路由服务提供相应的服务。具体地,生成服务器的路由列表时,列表中包括一条或者多条路由列表信息。该路由列表信息以域名的方式生成,每个域名相当于一个接入服务的集群。其中,返回的路由列表中,存在主备两种类型的路由列表,便于实现线路故障后,实现冗余,提高接通的成功率。

进一步地,一个实施例中,在选取服务器后,从缓存中获取一条令牌token信息。该令牌信息中限定了客户端访问服务器的时间信息。根据该令牌信息,客户端实现与指定服务器的信息交互。在反馈服务器的路由列表时,需要将令牌信息与路由列表一并发送至客户端中。

进一步地,一个实施例中,在选取服务器后,从本地获取预先存储的访问策略。该访问策略用于客户端访问路由列表信息的策略。具体地,包括,每次每个地址的轮询次数是多少;和/或每次所有路由地址访问失败后,间隔多久再次进行接口的访问;和/或接口间隔访问的最大次数是多少,之后均按照一定时间间隔进行访问(比如一天);还可采用非固定间隔的形式。该访问策略可以由用户自行设定。而在反馈服务器的路由列表时,将访问策略与路由列表一并发送至客户端中。

基于上述可知,通过在路由服务器配置客户端的访问策略,能够实现更多样化的客户端访问方式,做到服务端可控客户端的访问请求。此外,通过设置访问策略在一定程度上减少客户端对路由服务器的请求,提高路由服务器集群的吞吐量。

本发明实施例所提供的用于服务器集群的路由服务器及路由服务方法,通过获取请求中所携带的信息选择相应的路由策略;并根据相应的路由策略选择所对应的服务器,可有效减轻服务器的负担,确保服务器能够更有效地进行消息传输;通过在连接请求中配置版本信息以及设备的唯一标识码信息,及时获取使用灰度版本的客户端,便于第一时间将相应的请求进行分流,提高了客户端请求的响应速度,提升了用户的体验。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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