CN107959702B - 路由方法和装置 - Google Patents
路由方法和装置 Download PDFInfo
- Publication number
- CN107959702B CN107959702B CN201610905753.6A CN201610905753A CN107959702B CN 107959702 B CN107959702 B CN 107959702B CN 201610905753 A CN201610905753 A CN 201610905753A CN 107959702 B CN107959702 B CN 107959702B
- Authority
- CN
- China
- Prior art keywords
- node server
- data request
- node
- routing
- user
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种路由方法和装置。该路由方法包括:接收终端发送的第一数据请求,第一数据请求中携带有用户标识信息和第一节点服务器标识信息,第一节点服务器中存储有与用户标识信息对应的用户数据;从多个节点服务器中选择第二节点服务器,将第一数据请求路由至第二节点服务器;判断是否接收到第二节点服务器发送的第一通知消息,第一通知消息用于指示第二节点服务器中不存在用户数据;在接收到第一通知消息时,将第一数据请求路由至第一节点服务器标识信息所标识的第一节点服务器。本发明解决了相关技术将同一个用户的所有数据请求均路由至相同节点,将会导致该节点的负载较重,进而导致系统负载失衡的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种路由方法和装置。
背景技术
在多节点多活系统中,对新用户发起的数据请求,相关技术通常会按照预先设定的规则从系统中选中出目标节点,并将该用户与该目标节点的对应关系进行存储,以便于将该目标节点作为该用户后续数据请求的路由目标。上述路由方法将同一个用户的所有数据请求均路由至相同节点,可能会造成该节点负载较重,进而导致系统负载失衡。此外,上述路由方法需要存储用户与目标节点的对应关系,将会占用一定的存储资源,增加了系统损耗。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种路由方法和装置,以至少解决相关技术将同一个用户的所有数据请求均路由至相同节点,将会导致该节点的负载较重,进而导致系统负载失衡的技术问题。
根据本发明实施例的一个方面,提供了一种路由方法,包括:接收终端发送的第一数据请求,其中,第一数据请求中携带有用户标识信息和第一节点服务器标识信息,第一节点服务器中存储有与用户标识信息对应的用户数据;从多个节点服务器中选择第二节点服务器,并将第一数据请求路由至第二节点服务器;判断是否接收到第二节点服务器发送的第一通知消息,其中,第一通知消息用于指示第二节点服务器中不存在用户数据;以及在接收到第二节点服务器发送的第一通知消息的情况下,将第一数据请求路由至第一节点服务器标识信息所标识的第一节点服务器。
根据本发明实施例的另一方面,还提供了一种路由装置,包括:第一接收单元,用于接收终端发送的第一数据请求,其中,第一数据请求中携带有用户标识信息和第一节点服务器标识信息,第一节点服务器中存储有与用户标识信息对应的用户数据;第一选择单元,用于从多个节点服务器中选择第二节点服务器,并将第一数据请求路由至第二节点服务器;判断单元,用于判断是否接收到第二节点服务器发送的第一通知消息,其中,第一通知消息用于指示第二节点服务器中不存在用户数据;以及路由单元,用于在接收到第二节点服务器发送的第一通知消息的情况下,将第一数据请求路由至第一节点服务器标识信息所标识的第一节点服务器。
在本发明实施例中,通过在接收到终端发送的第一数据请求之后,首先将该第一数据请求路由至从多个节点服务器中选择的第二节点服务器,并判断是否接收到第二节点服务器发送的第一通知消息,其中,第一通知消息用户指示第二节点服务器中不存在与第一数据请求中携带的用户标识信息相对应的用户数据,在接收到第一通知消息的情况下,再将第一数据请求路由至第一节点服务器,其中,第一节点服务器中存储有与用户标识信息相对应的用户数据,达到了既能综合系统负载均衡对数据请求进行路由,又能保证对数据请求成功响应的目的,进而解决了相关技术将同一个用户的所有数据请求均路由至相同节点,将会导致该节点的负载较重,进而导致系统负载失衡的技术问题,从而实现了保证系统负载均衡,提高系统整体性能的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的路由方法和数据请求处理方法的硬件环境的示意图;
图2是根据本发明实施例的多节点多活系统的示意图;
图3是根据本发明实施例的一种可选的路由方法的流程图;
图4是根据本发明实施例的一种可选的数据请求处理方法的流程图;
图5是根据本发明优选实施例的用户数据落地的流程的示意图;
图6是根据本发明优选实施例的数据异常容错的流程的示意图;
图7是根据本发明实施例的一种可选的路由装置的示意图;
图8是根据本发明实施例的另一种可选的路由装置的示意图;
图9是根据本发明实施例的另一种可选的路由装置的示意图;
图10是根据本发明实施例的另一种可选的路由装置的示意图;
图11是根据本发明实施例的另一种可选的路由装置的示意图;
图12是根据本发明实施例的另一种可选的路由装置的示意图;
图13是根据本发明实施例的一种可选的数据请求处理装置的示意图;
图14是根据本发明实施例的另一种可选的数据请求处理装置的示意图;以及
图15是根据本发明实施例的一种终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例,提供了一种路由方法和一种数据请求处理的方法实施例。
可选地,在本实施例中,上述路由方法和数据请求处理方法可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中。如图1所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于PC、手机、平板电脑等。本发明实施例的路由方法和数据请求处理方法可以由服务器102来执行,也可以由终端104来执行,还可以是由服务器102和终端104共同执行。其中,终端104执行本发明实施例的路由方法和数据请求处理方法也可以是由安装在其上的客户端来执行。
可选地,在本实施例中,上述路由方法和数据请求处理方法还可以应用于如图2所示的多节点多活系统中,此处需要说明的是,多节点是指该系统中包括多个节点服务器,多活是指系统中的多个节点服务器之间彼此独立,各个节点服务器互不影响,但各个节点服务器之间又可以彼此通信。如图2所示,该系统可以包括终端、网关、节点服务器Node1和Node2(此处只列举了系统包括2个节点服务器的情形,需要说明的是,在实际应用场景中,该系统可以包括2个以上的节点服务器)。还需要说明的是,图2中各个部分之间的连接线仅用户标识各个部分之间具有通信连接关系,并不具体限定各个部分之间的通信连接为有线连接,各个部分之间的通信连接也可以为无线连接。
下面将对系统中的各个部分进行详细介绍,具体地:
终端可以包括但并不限于PC、手机、平板电脑等,终端中可以安装有应用客户端,本发明实施例对应用客户端的类型不做具体限定,例如,应用客户端可以是即时通信类客户端、游戏类客户端等。用户可以利用终端中的应用客户端发起数据请求,本发明实施例对数据请求的类型也不做具体限定,例如,用户发起的数据请求可以是新用户注册请求、某个具体业务请求等。
网关可以位于接入层,网关可以与终端通信连接,其中,该通信连接可以为有线连接,也可以为无线连接。终端发起的数据请求可以利用该通信连接发送至网关。网关可以作为路由决策者,将终端发送的数据请求路由至系统中的多个节点服务器中的其中一个节点服务器,此处需要说明的是,网关可以用于执行本发明实施例中的路由方法,该路由方法中具体的执行步骤和执行流程将会在下面进行详细介绍。
节点服务器,包括第一节点服务器Node1和第二节点服务器Node2,第一节点服务器Node1和第二节点服务器Node2彼此独立,但两者之间可以进行数据传输和数据共享。第一节点服务器Node1和第二节点服务器Node2均可以作为一个独立的处理单元,以进行数据校验和数据存储等处理过程。第一节点服务器Node1和第二节点服务器Node2中均可以包括核心服务的处理器或控制器,用户存储数据的存储器或数据库等。此处需要说明的是,第一节点服务器Node1和第二节点服务器Node2在网关执行本发明实施例中的路由方法的过程中均可以执行相应的处理流程,其中,第二节点服务器Node2可以用于执行本发明实施例中的数据请求处理方法,该数据请求处理方法中具体的执行步骤和执行流程将会在下面进行详细介绍。
下面将详细介绍网关所执行的本发明实施例的路由方法:
图3是根据本发明实施例的一种可选的路由方法的流程图,如图3所示,该方法可以包括以下步骤:
步骤S202,接收终端发送的第一数据请求,其中,第一数据请求中携带有用户标识信息和第一节点服务器标识信息,第一节点服务器中存储有与用户标识信息对应的用户数据;
步骤S204,从多个节点服务器中选择第二节点服务器,并将第一数据请求路由至第二节点服务器;
步骤S206,判断是否接收到第二节点服务器发送的第一通知消息,其中,第一通知消息用于指示第二节点服务器中不存在用户数据;
步骤S208,在接收到第二节点服务器发送的第一通知消息的情况下,将第一数据请求路由至第一节点服务器标识信息所标识的第一节点服务器。
通过上述步骤S202至步骤S208,通过在接收到终端发送的第一数据请求之后,首先将该第一数据请求路由至从多个节点服务器中选择的第二节点服务器,并判断是否接收到第二节点服务器发送的第一通知消息,其中,第一通知消息用户指示第二节点服务器中不存在与第一数据请求中携带的用户标识信息相对应的用户数据,在接收到第一通知消息的情况下,再将第一数据请求路由至第一节点服务器,其中,第一节点服务器中存储有与用户标识信息相对应的用户数据,达到了既能综合系统负载均衡对数据请求进行路由,又能保证对数据请求成功响应的目的,进而解决了相关技术将同一个用户的所有数据请求均路由至相同节点,将会导致该节点的负载较重,进而导致系统负载失衡的技术问题,从而实现了保证系统负载均衡,提高系统整体性能的技术效果。
在步骤S202提供的技术方案中,第一数据请求中可以携带有用户标识信息,用户标识信息可以包括但并不限于用户名称、用户ID等。第一数据请求可以为用户标识信息所指示的用户所发起的数据请求,此处需要说明的是,第一数据请求并不是用户标识信息所指示的用户在终端上首次发起的数据请求,该用户在终端上首次发起的数据请求为第二数据请求,第一数据请求是该用户在发起第二数据请求之后再发起的数据请求,此处需要注意,第一数据请求中的“第一”与第二数据请求中的“第二”并不限定具体顺序,只是起名称区分的作用。在介绍用户标识所指示的用户所发起的第一数据请求之前,需要首先对该用户所发起的第二数据请求的过程以及网关针对该第二数据请求的响应过程进行详细介绍,具体参见以下可选实施例:
作为一种可选的实施例,在步骤S202接收终端发送的第一数据请求之前,该实施例还可以包括以下步骤:
步骤S2012,接收终端发送的第二数据请求,其中,第二数据请求中携带有用户标识信息;
步骤S2014,从多个节点服务器中选择第一节点服务器,并将第二数据请求路由至第一节点服务器中,其中,第二数据请求用于指示第一节点服务器存储具有对应关系的用户标识信息和用户数据。
需要说明的是,用户在终端上发起的第二数据请求是该用户首次发起的数据请求,第二数据请求中可以携带有该用户的用户标识信息,其中,用户标识信息可以包括但并不限于用户名称、用户ID等。网关在接收到终端发送的第二数据请求之后,可以综合系统中的多个节点服务器的性能参数从多个节点服务器中选择第一节点服务器,并将第二数据请求路由至该第一节点服务器,此处需要说明的是,第一节点服务器可以为多个节点服务器中当前性能参数最优的节点服务器,以便于可以保证将第二数据请求路由至第一节点服务器之后可以被成功响应,同时又能保证系统的负载均衡。还需要说明的是,节点服务器的性能参数可以包括以下至少之一:节点服务器的当前负载量、节点服务器的处理效率或者处理速度、节点服务器的存储容量、终端与节点服务器的距离等参数。网关在对第二数据请求进行路由时通过综合考虑系统中的多个节点的上述性能参数,能够使得所选择的第一节点服务器既能保证成功快速地响应第二数据请求,同时又能保证系统整体的负载均衡,以保证系统整体性能。
还需要说明的是,网关在将第二数据请求路由至第一节点服务器之后,第一节点服务器可以执行以下流程,具体可以包括以下步骤:
步骤S11,第一节点服务器存储具有与用户标识信息相对应的用户数据。
需要说明的是,网关在将第二数据请求路由至第一节点服务器后,第一节点服务器会立即响应该第二数据请求,具体响应过程可以包括数据校验与数据存储,其中,数据校验可以包括验证验证用户标识信息是否合法,在验证通过的情况下,第一节点服务器还可以执行数据存储过程,也即存储与用户标识信息相对应的用户数据,此处需要说明的是,与用户标识信息相对应的用户数据可以包括但并不限于登录密码、用户性别、用户年龄、用户位置等信息。
可选地,第一节点服务器在存储与用户标识信息相对应的用户数据之后,可以向网关返回确认消息,网关可以转发该确认消息给终端。此处需要说明的是,第一节点服务器返回的确认消息中可以携带有第一节点服务器标识信息,该第一节点服务器标识信息可以用于指示第一节点服务器中存储有与用户标识信息相对应的用户数据。终端在接收到网关转发的第一节点服务器标识信息之后,可以在终端本地存储该第一节点服务器标识信息,以便于该用户标识信息所指示的用户再次在终端上发起数据请求(例如第一数据请求)时,可以使得其中携带有该存储的第一节点服务器标识信息,以实现网关在根据系统负载均衡选择的节点服务器未能成功响应该数据请求的情况下,能够根据该数据请求中所携带的第一节点服务器标识信息将该数据请求路由至第一节点服务器,进而保证该数据请求能够被成功响应。还需要说明的是,第一节点服务器标识信息在终端中是临时保存的,具有一定的时效性,第一节点服务器标识信息在终端中的保存时间可以根据实际需求设定或调整,此处不做具体限定。本发明实施例通过在终端本地保存第一节点服务器标识信息,能够使得系统无需在服务端保存并维护第一节点服务器的相关属性信息,进而减少了系统资源的投入。
步骤S12,第一节点服务器将存储的用户数据进行上传,以供第二节点服务器下载用户数据。
需要说明的是,网关在将第二数据请求路由至第一节点服务器之后,第一节点服务器可以先存储第二数据请求中携带的、具有对应关系的用户标识信息和用户数据,并在存储完用户数据之后,将存储的用户数据进行上传,以供系统中的其他节点服务器(包括第二节点服务器)下载该用户数据,以便于网关将该用户标识信息所指示的用户再次发起的数据请求路由至系统中的其他节点服务器时,这些节点服务器可以根据所下载的用户数据对数据请求进行响应。此处需要说明的是,第一节点服务器可以将存储的用户数据上传至公共的存储器或者数据库中,本发明实施例对其不做具体限定,该公共的存储器或者数据库可以被系统中的其他节点服务器访问,系统中的其他节点服务器可以通过订阅方式从该公共的存储器或者数据库中下载用户数据,这样便可以实现在系统中的节点服务器之间进行数据异步复制,也即在系统中的节点服务器之间进行用户数据的共享。
网关在响应第二数据请求之后,第一节点服务器中存储有用户标识信息及其对应的用户数据,终端中存储有第一节点服务器标识信息。如果该用户标识信息所指示的用户根据实际需求在终端上再次发起数据请求,例如第一数据请求时,终端可以将该第一数据请求发送给网关,此处需要说明的是,第一数据请求与第二数据请求可以为用一个用户在终端上所发起的数据请求,第一数据请求中可以携带有用户标识信息和第一节点服务器标识信息。
网关在接收到第一数据请求之后,可以执行步骤S204至步骤S208所示的路由流程,下面将对步骤S204至步骤S208所示的路由流程进行详细说明。
在步骤S204提供的技术方案中,网关在接收到第一数据请求之后,可以首先考虑系统负载均衡从系统中的多个节点中选择第二节点服务器,并将该第一数据请求路由至第二节点服务器。作为一种可选的实施例,步骤S204中的从多个节点服务器中选择第二节点服务器可以包括:步骤S2042,根据多个节点服务器的性能参数从多个节点服务器中选择第二节点服务器。需要说明的是,网关在接收到终端发送的第一数据请求之后,可以综合系统中的多个节点服务器的性能参数从多个节点服务器中选择第二节点服务器,并将第一数据请求路由至该第二节点服务器,此处需要说明的是,第二节点服务器可以为多个节点服务器中当前性能参数最优的节点服务器,以便于可以保证将第一数据请求路由至第二节点服务器之后可以被成功响应,同时又能保证系统的负载均衡。还需要说明的是,节点服务器的性能参数可以包括以下至少之一:节点服务器的当前负载量、节点服务器的处理效率或者处理速度、节点服务器的存储容量、终端与节点服务器的距离等参数。网关在对第一数据请求进行路由时通过综合考虑系统中的多个节点的上述性能参数,能够使得所选择的第二节点服务器既能保证成功快速地响应第二数据请求,同时又能保证系统整体的负载均衡,以保证系统整体性能。
需要说明的是,第二节点服务器可以与第一节点服务器相同,也可以与第一节点服务器不同。当第二节点服务器与第一节点服务器相同时,也即第二数据请求和第一数据请求被路由至同一个节点服务器,则第二节点服务器能够成功响应该第一数据请求。如果第二节点服务器与第一节点服务器不同,第二节点服务器能否成功响应第一数据请求则需要考虑当前时刻第二节点服务器中是否已经成功下载了由第一节点服务器上传的用户数据。此处需要说明的是,当第一节点服务器上传与用户标识信息相对应的用户数据之后,第二节点服务器可以通过订阅方式下载该用户数据,需要注意的是,网关在将第二数据请求路由至第一节点服务器之后,第一服务器存储用户数据、上传用户数据、第二节点服务器下载该用户数据均需要时间,在实际应用中可以存在第二节点服务器还未下载或者还未能成功下载完用户数据时网关已经将第一数据请求路由至第二节点服务器的情形,因此,网关在将第一数据请求路由至第二节点服务器之后,第二节点服务器可以执行以下处理流程,具体包括以下步骤:
步骤S21,第二节点服务器判断是否已经成功下载完与用户标识信息相对应的用户数据。
步骤S22,在第二节点服务器已经成功下载完用户数据,并将用户数据存储在第二节点服务器中的存储器或者数据库中的情况下,说明第二节点服务器可以成功响应该第一数据请求,此时第二节点服务器不会向网关发送第一通知消息,而是直接对第一数据请求进行响应。此处需要说明的是,第一通知消息可以用于指示第二节点服务器中不存在与用户标识信息相对应的用户数据。
步骤S23,在第二节点服务器当前时刻还未下载或者还未能成功下载完与用户标识信息相对应的用户数据的情况下,说明第二节点服务器中不存在用户数据,第二节点服务器不能成功响应该第一数据请求,此时第二节点服务器可以向网关发送第一通知消息,通知网关此时第二节点服务器中不存在与用户标识信息相对应的用户数据,不能成功响应第一数据请求。
在步骤S206提供的技术方案中,需要说明的是,基于上述分析可知,如果网关未接收到第一通知消息,则说明第一数据请求被第二节点服务器成功响应,网关无需再次对第一数据请求进行路由;如果网关接收到第一通知消息,则说明第一数据请求未能被第二节点服务器成功响应,网关需要再次对第一数据请求进行路由,以便于保证第一数据请求被响应的成功率。因此,本发明实施例可中网关在将第一数据请求路由至第二节点服务器之后,判断是否接收到第二节点服务器发送的第一通知消息,来决定是否需要对第一数据请求进行再次路由。
可选地,本发明实施例可以实时地判断是否接收到第二节点服务器发送的第一通知消息,这样能够以便于网关在接收到第二节点服务器发送的第一通知消息之后,能够立即将第一数据请求进行重新路由,以减小对第一数据请求响应的时延,进而达到提高对第一数据请求进行响应的效率。
在步骤S208提供的技术方案中,在网关接收到第二节点服务器发送的第一通知消息的情况下,网关可以立即将第一数据请求进行重新路由,本发明实施例中对第一数据请求进行重新路由的过程可以包括:网关可以首先对第一数据请求进行解析以获取其中携带的第一节点服务器标识信息,之后网关可以根据该第一节点服务器标识信息将第一数据请求路由至第一节点服务器标识信息所指示的第一节点服务器,由于第一节点服务器中存储有与用户标识信息相对应的用户数据,因此网关将第一数据请求路由至第一节点服务器后,第一节点服务器可以成功响应该第一数据请求。
需要说明的是,本发明实施例中网关在对用户发起的第一数据请求进行路由时,首先根据系统的负载均衡将其路由至第二节点服务器,如果第二节点服务器能够成功响应该第一数据请求,相较于将用户的数据请求均路由至同一个节点服务器,本发明实施例能够实现保证系统负载均衡的目的。如果第二节点服务器未能成功响应第一数据请求,在接收到第二节点服务器发送的第一通知消息后,本发明实施例中网关可以根据第一数据请求中携带的第一节点服务器标识信息将该第一数据请求路由至第一节点服务器标识信息所指示的第一节点服务器,这样能够保证第一数据请求被成功响应。
作为一种可选的实施例,在步骤S204中的从多个节点服务器中选择第二节点服务器之后,该实施例还可以包括:步骤S205,记录第一数据请求的路由次数。
需要说明的是,网关每对第一数据请求执行一次路由操作,便可以对第一数据请求的路由次数执行一次累加操作,其中,第一数据请求的路由次数的初始值为0。此处还需要说明的是,该实施例记录第一数据请求的路由次数的目的是:本发明上述实施例中网关将第一数据请求路由至第二节点服务器后,如果网关接收到第二节点服务器发送的第一通知消息,网关可以根据第一数据请求中携带的第一节点服务器标识信息立即将第一数据请求路由至第一节点服务器,这样能够缩短第一数据请求的响应时间,而且能够保证第一数据请求被成功响应,因为第一节点服务器中存储有与用户标识信息对应的用户数据。但是,考虑到实际用场景中可能会存在很短时间内第一节点服务器负载变得很重的情况(虽然这种情况很少出现),为了保证系统整体的负载均衡,该实施例中网关可以在第二节点服务器未能成功响应第一数据请求之后,网关并不立即将第一数据请求路由至第一节点服务器,而是再次考虑系统负载均衡结合系统中的多个节点服务器的性能参数从第一数据请求尚未路由至的多个节点服务器中选择一个节点服务器,将第一数据请求路由该节点服务器中,以便于进一步地保证系统的整体负载均衡,提高系统整体性能。但是,为了保证第一数据请求能够被成功响应,且为了保证用户使用体验,第一数据请求的响应时间不能太长,故该实施例可以限定第一数据请求的路由次数不能超过预定阈值,此处需要说明的是,预定阈值可以根据实际需求进行设定或调整,例如预定阈值可以是2、3等。
与步骤S205相对应地,步骤S206在接收到第二节点服务器发送的第一通知消息的情况下,将第一数据请求路由至第一节点服务器标识信息所标识的第一节点服务器可以包括以下步骤:
步骤S2062,判断路由次数是否超过预定阈值;
步骤S2064,在路由次数超过预定阈值的情况下,将第一数据请求路由至第一节点服务器;
步骤S2066,在路由次数未超过预定阈值的情况下,从多个节点服务器中选择第三节点服务器,将第一数据请求路由至第三节点服务器,并累加路由次数,其中,第三节点服务器为多个节点服务器中第一数据请求尚未路由至的节点服务器;
步骤S2068,在累加后的路由次数超过预定阈值的情况下,和/或,在接收到第三节点服务器发送的第二通知消息的情况下,将第一数据请求路由至第一节点服务器,其中,第二通知消息用于指示第三节点服务器中不存在用户数据。
需要说明的是,在网关接收到第二节点服务器发送的第一通知消息之后,网关可以首先判断当前第一数据请求的路由次数是否超过预定阈值,此预定阈值可以为根据需求设定的阈值。如果第一数据请求的路由次数超过预定阈值,则网关直接将第一数据请求路由至第一节点服务器,以保证第一数据请求的响应时间和成功率。如果第一数据请求的路由次数未超过预定阈值,则网关可以再次根据当前系统中的多个节点服务器的性能参数从中选择第三节点服务器,其中,第三节点服务器可以为多个节点服务器中第一数据请求尚未路由至的节点服务器。还需要说明的是,此处的节点服务器的性能参数也可以包括以下至少之一:节点服务器的当前负载量、节点服务器的处理效率或者处理速度、节点服务器的存储容量、终端与节点服务器的距离等参数。网关在对第一数据请求进行再次路由时通过综合考虑系统中的多个节点服务器的上述性能参数,能够保证系统整体的负载均衡,以保证系统整体性能。网关在从多个节点服务器中选择第三节点服务器之后,可以将第一数据请求路由至第三节点服务器,第三路由器所执行的流程与网关将第一数据请求路由至第二节点服务器之后第二服务器所执行的流程相似,具体包括以下步骤:
步骤S31,第三节点服务器判断是否已经成功下载完与用户标识信息相对应的用户数据。
步骤S32,在第三节点服务器已经成功下载完用户数据,并将用户数据存储在第三节点服务器中的存储器或者数据库中的情况下,说明第三节点服务器可以成功响应该第一数据请求,此时第三节点服务器不会向网关发送第一通知消息,而是直接对第一数据请求进行响应。
步骤S33,在第三节点服务器当前时刻还未下载或者还未能成功下载完与用户标识信息相对应的用户数据的情况下,第三节点服务器不能成功响应该第一数据请求,此时第三节点服务器可以向网关发送第二通知消息,通知网关此时第三节点服务器中不存在与用户标识信息相对应的用户数据,不能成功响应第一数据请求。网关在接收到第三节点服务器发送的第二通知消息的情况下,可以根据第一数据请求中携带的第一节点服务器标识信息立即将第一数据请求重新路由至第一节点服务器。和/或,在网关将第一数据请求路由至第三节点服务器之后,累加后的第一数据请求的路由次数超过了预定阈值,网关也会将第一数据请求重新路由至第一节点服务器,以保证第一数据请求可以快速被第一节点服务器成功响应。
该实施例中网关可以在第二节点服务器未能成功响应第一数据请求之后,网关并不立即将第一数据请求路由至第一节点服务器,而是再次考虑系统负载均衡结合系统中的多个节点服务器的性能参数从第一数据请求尚未路由至的第三节点服务器,以便于进一步地保证系统的整体负载均衡,提高系统整体性能。同时该实施例通过限定第一数据请求的路由次数不能超过预定阈值,实现了保证第一数据请求能够被成功响应,保证第一数据请求的响应时间不能太长,进而提高用户使用体验。
下面将详细介绍第二节点服务器所执行的本发明实施例的数据请求处理方法:
图4是根据本发明实施例的一种可选的数据请求处理方法的流程图,如图4所示,该方法可以包括以下步骤:
步骤S302,接收第一数据请求,其中,第一数据请求中携带有用户标识信息;
步骤S304,判断是否存在与用户标识信息对应的用户数据;
步骤S306,在存在与用户标识信息对应的用户数据的情况下,则对第一数据请求进行响应;
步骤S308,在不存在与用户标识信息对应的用户数据的情况下,则发送第一通知消息,其中,第一通知消息用于指示不存在用户数据。
作为一种可选的实施例,步骤S304判断是否存在与用户标识信息对应的用户数据可以包括以下步骤:
步骤S3042,判断是否成功下载第一节点服务器所上传的用户数据,其中,用户数据为第一节点服务器在接收到第二数据请求后上传的数据,第二数据请求中携带有用户标识信息;
步骤S3044,在成功下载第一节点服务器所上传的用户数据的情况下,确定存在与用户标识信息对应的用户数据;
步骤S3046,在未成功下载第一节点服务器所上传的用户数据的情况下,确定不存在与用户标识信息对应的用户数据。
针对本发明实施例中的数据请求处理方法,需要说明的是,该数据请求处理方法可以有如图2所示的系统中的第二节点服务器执行。针对本发明实施例中的数据请求处理方法中所涉及到的所有执行步骤可以与本发明上述实施例的路由方法中所介绍的第二节点服务器所执行的步骤相同,具体可以参见本发明上述实施例的路由方法中的步骤S21至步骤S23的相关说明,此处不再进行赘述。还需要说明的是,本发明实施例的数据请求的处理方法中所涉及到的技术术语以及相关技术手段的介绍也均在本发明上述实施例的路由方法中进行了详细说明,具体参见本发明上述实施例的路由方法中的步骤S202至步骤S208的相关说明,此处不再进行赘述。
需要说明的是,在网关根据系统负载均衡将第一数据请求路由至第二节点服务器之后,第二节点服务器通过判断此时由第一节点服务器中的用户数据是否已经同步至第二节点服务器,来决定是否向网关发送第一通知消息。当网关接收到第二节点服务器发送的第一通知消息之后,可以将第一数据请求路由至第一节点服务器,以保证第一数据请求能够被成功响应。本发明实施例的数据请求处理方法能够达到既能综合系统负载均衡对数据请求进行路由,又能保证对数据请求成功响应的目的,进而解决了相关技术将同一个用户的所有数据请求均路由至相同节点,将会导致该节点的负载较重,进而导致系统负载失衡的技术问题,从而实现了保证系统负载均衡,提高系统整体性能的技术效果。
本发明还提供了一种优选实施例,该优选实施例提供了一种基于前端缓存的路由容错方案,该方案可以应用与应用客户端中,此处对应用客户端的类型不做具体限定。该方案可以在如图2所示的多节点多活系统中运行,如图2所示的系统架构中包括两个相互独立的节点(即本发明上述实施例中的节点服务器),这两个相互独立的节点就是路由决策的对象。整个系统的路由决策者由接入层的网关来担当。需要说明的是,系统中的用户数据可以是在用户初始注册时,实时落地到一个节点里面,并异步同步给另外一个节点的数据。这个初始落地的节点信息,会在用户后续业务请求时带上。如果路由决策者做了第一次路由后(负载均衡,随机路由),收到数据不存在的错误提示(该节点的用户数据没同步上),那么就可以使用初始落地的节点,再尝试一次路由。
下面将从一条新用户数据在系统负载均衡的指引下落地到一个节点开始,到后续业务请求在节点间的路由选择,来说明整个方案的具体实现,具体可以包括两部分:
第一部分,用户数据落地。
如图5所示,该部分的具体流程可以描述为:
终端将用户开户的初始请求发送给接入层网关,网关将根据系统负载均衡或者随机选择出一个节点做路由(假设系统正常,各个节点均可用),如图5中的1.1,1.2标签所示。校验用户信息成功后,记录用户数据到本节点(Node1),然后返回注册成功,同时带上节点的标识;另外,也会向另外一个节点,通过异步的方式,主动发起数据同步,如图5中的1.3,1.4,1.5,2标签所示。成功注册的响应消息到达终端时,终端将经过签名的节点标识记录到本地(cookie或是session-storage),如图5中的1.6标签所示。
第二部分,数据异常容错。
如图6所示,该部分的具体流程可以描述为:
终端将用户随后发起的业务请求并带上节点标识(如果记录还存在)发送给接入层网关。业务请求达到接入层网关时,网关也是根据系统负载均衡或者随机选择出一个节点做路由,如图6中的1.1,1.2标签所示。假设路由到了非注册的节点,例如Node2,如果Node1中的用户数据已经同步至Node2,那么用户的业务请求在Node2上也能得到成功处理。假设Node1上的用户数据还没及时同步至Node2,那么Node2将返回数据不存在的错误提示,如图6中的1.3标签所示。接入层网关接收到Node2返回的错误提示之后,可以检查业务请求里面带有的节点标识,则向该节点标识所指示的Node1再做一次路由,如图6中的1.4标签所示。业务请求到达用户注册时的Node1,Node1中包含有用户数据,能够成功处理这次请求,然后返回注册成功,如图6中的1.5,1.6,1.7标签所示。
需要说明的是,考虑到用户数据是读多写少,写入的数据在各个节点间的同步不会造成太多的拥堵,因此上面的场景只属于少数异常。系统对于正常的业务请求,仍然是以负载均衡的方式为先决条件做出路由选择。
在一个多节点多活系统里面,用户数据初始落到某个节点后,本方案将利用前端记录下节点信息,并在初选路由出现数据异常时,引导系统再次往用户归属节点上做重试。通过这样的方式,使得系统可以优先以整体的负载均衡做路由选择,而不是以用户归属的节点做固定路由。同时,可以减轻系统在数据同步上的苛刻要求,留给系统足够的时间,实现数据在各个节点上的最终一致性。本方案,通过路由重选的容错方式,解绑了用户数据跟节点的对应关系,进而减少了系统在这方面的资源投入,让系统在负载均衡上可以更好的发挥作用。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
根据本发明实施例,还提供了一种用于实施上述路由方法的路由装置。图7是根据本发明实施例的一种可选的路由装置的示意图,如图7所示,该装置可以包括:
第一接收单元202,用于接收终端发送的第一数据请求,其中,第一数据请求中携带有用户标识信息和第一节点服务器标识信息,第一节点服务器中存储有与用户标识信息对应的用户数据;第一选择单元204,用于从多个节点服务器中选择第二节点服务器,并将第一数据请求路由至第二节点服务器;判断单元206,用于判断是否接收到第二节点服务器发送的第一通知消息,其中,第一通知消息用于指示第二节点服务器中不存在用户数据;以及路由单元208,用于在接收到第二节点服务器发送的第一通知消息的情况下,将第一数据请求路由至第一节点服务器标识信息所标识的第一节点服务器。
需要说明的是,该实施例中的第一接收单元202可以用于执行本申请实施例1中的步骤S202,该实施例中的第一选择单元204可以用于执行本申请实施例1中的步骤S204,该实施例中的判断单元206可以用于执行本申请实施例1中的步骤S206,该实施例中的路由单元208可以用于执行本申请实施例1中的步骤S208。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。还需要说明的是,上述模块也可以作为装置的一部分运行在如图2所示的多节点多活系统中的网关中。
作为一种可选的实施例,如图8所示,该实施例的路由装置还可以包括:第二接收单元2012,用于在接收终端发送的第一数据请求之前,接收终端发送的第二数据请求,其中,第二数据请求中携带有用户标识信息;第二选择单元2014,用于从多个节点服务器中选择第一节点服务器,并将第二数据请求路由至第一节点服务器中,其中,第二数据请求用于指示第一节点服务器存储与用户标识信息相对应的用户数据。
需要说明的是,该实施例中的第二接收单元2012可以用于执行本申请实施例1中的步骤S2012,该实施例中的第二选择单元2014可以用于执行本申请实施例1中的步骤S2014。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。还需要说明的是,上述模块也可以作为装置的一部分运行在如图2所示的多节点多活系统中的网关中。
作为一种可选的实施例,如图9所示,该实施例的路由装置还可以包括:上传单元11,用于在将第二数据请求路由至第一节点服务器中之后,第一节点服务器将存储的用户数据进行上传,以供第二节点服务器下载用户数据。
需要说明的是,该实施例中的上传单元11可以用于执行本申请实施例1中的步骤S11。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。还需要说明的是,上述模块也可以作为装置的一部分运行在如图2所示的多节点多活系统中的第一节点服务器中。
作为一种可选的实施例,如图10所示,该实施例的路由装置还可以包括:第一控制单元22,用于在将第一数据请求路由至第二节点服务器之后,在第二节点服务器成功下载用户数据的情况下,第二节点服务器不发送第一通知消息;第二控制单元23,用于在第二节点服务器未成功下载用户数据的情况下,第二节点服务器发送第一通知消息。
需要说明的是,该实施例中的第一控制单元22可以用于执行本申请实施例1中的步骤S22,该实施例中的第二控制单元23可以用于执行本申请实施例1中的步骤S23。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。还需要说明的是,上述模块也可以作为装置的一部分运行在如图2所示的多节点多活系统中的第二节点服务器中。
作为一种可选的实施例,如图11所示,第一选择单元204可以包括:选择模块2042,用于根据多个节点服务器的性能参数从多个节点服务器中选择第二节点服务器,其中,性能参数包括以下至少之一:节点服务器的负载量、节点服务器的处理效率、节点服务器的存储容量、终端与节点服务器的距离。
需要说明的是,该实施例中的选择模块2042可以用于执行本申请实施例1中的步骤S2042。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。还需要说明的是,上述模块也可以作为装置的一部分运行在如图2所示的多节点多活系统中的网关中。
作为一种可选的实施例,如图12所示,该实施例的路由装置还可以包括:记录单元205,用于在从多个节点服务器中选择第二节点服务器之后,记录第一数据请求的路由次数。相应地,路由单元206可以包括:判断模块2062,用于判断路由次数是否超过预定阈值;第一路由模块2064,用于在路由次数超过预定阈值的情况下,将第一数据请求路由至第一节点服务器;第二路由模块2066,用于在判断路由次数是否超过预定阈值之后,在路由次数未超过预定阈值的情况下,从多个节点服务器中选择第三节点服务器,累加路由次数,并将第一数据请求路由至第三节点服务器,其中,第三节点服务器为多个节点服务器中第一数据请求尚未路由至的节点服务器;第三路由模块2068,用于在累加后的路由次数超过预定阈值的情况下,和/或,在接收到第三节点服务器发送的第二通知消息的情况下,将第一数据请求路由至第一节点服务器,其中,第二通知消息用于指示第三节点服务器中不存在用户数据。
需要说明的是,该实施例中的选择模块205可以用于执行本申请实施例1中的步骤S205,该实施例中的判断模块2062可以用于执行本申请实施例1中的步骤S2062,该实施例中的第一路由模块2064可以用于执行本申请实施例1中的步骤S2064,该实施例中的第二路由模块2066可以用于执行本申请实施例1中的步骤S2066,该实施例中的第三路由模块2068可以用于执行本申请实施例1中的步骤S2068。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。还需要说明的是,上述模块也可以作为装置的一部分运行在如图2所示的多节点多活系统中的网关中。
根据本发明实施例,还提供了一种用于实施上述数据请求处理方法的数据请求处理装置。图13是根据本发明实施例的一种可选的数据请求处理装置的示意图,如图13所示,该装置可以包括:
接收单元302,用于接收第一数据请求,其中,第一数据请求中携带有用户标识信息;判断单元304,用于判断是否存在与用户标识信息对应的用户数据;响应单元306,用于在存在与用户标识信息对应的用户数据的情况下,则对第一数据请求进行响应;发送单元308,用于在不存在与用户标识信息对应的用户数据的情况下,则发送第一通知消息,其中,第一通知消息用于指示不存在用户数据。
需要说明的是,该实施例中的接收单元302可以用于执行本申请实施例1中的步骤S302,该实施例中的判断单元304可以用于执行本申请实施例1中的步骤S304,该实施例中的响应单元306可以用于执行本申请实施例1中的步骤S306,该实施例中的发送单元308可以用于执行本申请实施例1中的步骤S308。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。还需要说明的是,上述模块也可以作为装置的一部分运行在如图2所示的多节点多活系统中的第二节点服务器中。
作为一种可选的实施例,如图14所示,判断单元304可以包括:判断模块3042,用于判断是否成功下载第一节点服务器所上传的用户数据,其中,用户数据为第一节点服务器在接收到第二数据请求后上传的数据,第二数据请求中携带有用户标识信息;第一确定模块3044,用于在成功下载第一节点服务器所上传的用户数据的情况下,确定存在与用户标识信息对应的用户数据;第二确定模块3046,用于在未成功下载第一节点服务器所上传的用户数据的情况下,确定不存在与用户标识信息对应的用户数据。
需要说明的是,该实施例中的判断模块3042可以用于执行本申请实施例1中的步骤S3042,该实施例中的第一确定模块3044可以用于执行本申请实施例1中的步骤S3044,该实施例中的第二确定模块3046可以用于执行本申请实施例1中的步骤S3046。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。还需要说明的是,上述模块也可以作为装置的一部分运行在如图2所示的多节点多活系统中的第二节点服务器中。
本发明实施例的路由装置和数据请求处理装置,可以解决了相关技术将同一个用户的所有数据请求均路由至相同节点,将会导致该节点的负载较重,进而导致系统负载失衡的技术问题,进而达到了保证系统负载均衡,提高系统整体性能的技术效果。
根据本发明实施例,还提供了一种用于实施上述路由方法的服务器或终端。
图15是根据本发明实施例的一种终端的结构框图,如图15所示,该终端可以包括:一个或多个(图中仅示出一个)处理器201、存储器203、以及传输装置205(如上述实施例中的发送装置),如图15所示,该终端还可以包括输入输出设备207。
其中,存储器203可用于存储软件程序以及模块,如本发明实施例中的路由方法和装置对应的程序指令/模块,处理器201通过运行存储在存储器203内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的路由方法。存储器203可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器203可进一步包括相对于处理器201远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置205用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置205包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置205为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器203用于存储应用程序。
处理器201可以通过传输装置205调用存储器203存储的应用程序,以执行下述步骤:接收终端发送的第一数据请求,其中,第一数据请求中携带有用户标识信息和第一节点服务器标识信息,第一节点服务器中存储有与用户标识信息对应的用户数据;从多个节点服务器中选择第二节点服务器,并将第一数据请求路由至第二节点服务器;判断是否接收到第二节点服务器发送的第一通知消息,其中,第一通知消息用于指示第二节点服务器中不存在用户数据;以及在接收到第二节点服务器发送的第一通知消息的情况下,将第一数据请求路由至第一节点服务器标识信息所标识的第一节点服务器。
处理器201还用于执行下述步骤:在接收终端发送的第一数据请求之前,接收终端发送的第二数据请求,其中,第二数据请求中携带有用户标识信息;从多个节点服务器中选择第一节点服务器,并将第二数据请求路由至第一节点服务器中,其中,第二数据请求用于指示第一节点服务器存储与用户标识信息相对应的用户数据。
处理器201还用于执行下述步骤:在将第二数据请求路由至第一节点服务器中之后,第一节点服务器将存储的用户数据进行上传,以供第二节点服务器下载用户数据。
处理器201还用于执行下述步骤:在将第一数据请求路由至第二节点服务器之后,在第二节点服务器成功下载用户数据的情况下,第二节点服务器不发送第一通知消息;在第二节点服务器未成功下载用户数据的情况下,第二节点服务器发送第一通知消息。
处理器201还用于执行下述步骤:根据多个节点服务器的性能参数从多个节点服务器中选择第二节点服务器,其中,性能参数包括以下至少之一:节点服务器的负载量、节点服务器的处理效率、节点服务器的存储容量、终端与节点服务器的距离。
处理器201还用于执行下述步骤:在从多个节点服务器中选择第二节点服务器之后,记录第一数据请求的路由次数;在接收到第二节点服务器发送的第一通知消息的情况下,判断路由次数是否超过预定阈值;在路由次数超过预定阈值的情况下,将第一数据请求路由至第一节点服务器。
处理器201还用于执行下述步骤:在判断路由次数是否超过预定阈值之后,在路由次数未超过预定阈值的情况下,从多个节点服务器中选择第三节点服务器,累加路由次数,并将第一数据请求路由至第三节点服务器,其中,第三节点服务器为多个节点服务器中第一数据请求尚未路由至的节点服务器;在累加后的路由次数超过预定阈值的情况下,和/或,在接收到第三节点服务器发送的第二通知消息的情况下,将第一数据请求路由至第一节点服务器,其中,第二通知消息用于指示第三节点服务器中不存在用户数据。
采用本发明实施例,提供了一种路由方案。通过在接收到终端发送的第一数据请求之后,首先将该第一数据请求路由至从多个节点服务器中选择的第二节点服务器,并判断是否接收到第二节点服务器发送的第一通知消息,其中,第一通知消息用户指示第二节点服务器中不存在与第一数据请求中携带的用户标识信息相对应的用户数据,在接收到第一通知消息的情况下,再将第一数据请求路由至第一节点服务器,其中,第一节点服务器中存储有与用户标识信息相对应的用户数据,达到了既能综合系统负载均衡对数据请求进行路由,又能保证对数据请求成功响应的目的,进而解决了相关技术将同一个用户的所有数据请求均路由至相同节点,将会导致该节点的负载较重,进而导致系统负载失衡的技术问题,从而实现了保证系统负载均衡,提高系统整体性能的技术效果。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图15所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile InternetDevices,MID)、PAD等终端设备。图15其并不对上述电子装置的结构造成限定。例如,终端还可包括比图15中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图15所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行路由方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,接收终端发送的第一数据请求,其中,第一数据请求中携带有用户标识信息和第一节点服务器标识信息,第一节点服务器中存储有与用户标识信息对应的用户数据;
S2,从多个节点服务器中选择第二节点服务器,并将第一数据请求路由至第二节点服务器;
S3,判断是否接收到第二节点服务器发送的第一通知消息,其中,第一通知消息用于指示第二节点服务器中不存在用户数据;
S4,在接收到第二节点服务器发送的第一通知消息的情况下,将第一数据请求路由至第一节点服务器标识信息所标识的第一节点服务器。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在接收终端发送的第一数据请求之前,接收终端发送的第二数据请求,其中,第二数据请求中携带有用户标识信息;从多个节点服务器中选择第一节点服务器,并将第二数据请求路由至第一节点服务器中,其中,第二数据请求用于指示第一节点服务器存储与用户标识信息相对应的用户数据。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在将第二数据请求路由至第一节点服务器中之后,第一节点服务器将存储的用户数据进行上传,以供第二节点服务器下载用户数据。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在将第一数据请求路由至第二节点服务器之后,在第二节点服务器成功下载用户数据的情况下,第二节点服务器不发送第一通知消息;在第二节点服务器未成功下载用户数据的情况下,第二节点服务器发送第一通知消息。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:根据多个节点服务器的性能参数从多个节点服务器中选择第二节点服务器,其中,性能参数包括以下至少之一:节点服务器的负载量、节点服务器的处理效率、节点服务器的存储容量、终端与节点服务器的距离。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在从多个节点服务器中选择第二节点服务器之后,记录第一数据请求的路由次数;在接收到第二节点服务器发送的第一通知消息的情况下,判断路由次数是否超过预定阈值;在路由次数超过预定阈值的情况下,将第一数据请求路由至第一节点服务器。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在判断路由次数是否超过预定阈值之后,在路由次数未超过预定阈值的情况下,从多个节点服务器中选择第三节点服务器,累加路由次数,并将第一数据请求路由至第三节点服务器,其中,第三节点服务器为多个节点服务器中第一数据请求尚未路由至的节点服务器;在累加后的路由次数超过预定阈值的情况下,和/或,在接收到第三节点服务器发送的第二通知消息的情况下,将第一数据请求路由至第一节点服务器,其中,第二通知消息用于指示第三节点服务器中不存在用户数据。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (14)
1.一种路由方法,其特征在于,包括:
接收终端发送的第一数据请求,其中,所述第一数据请求中携带有用户标识信息和第一节点服务器标识信息,所述第一节点服务器中存储有与所述用户标识信息对应的用户数据;
根据多个节点服务器的性能参数从所述多个节点服务器中选择第二节点服务器,并将所述第一数据请求路由至所述第二节点服务器;
判断是否接收到所述第二节点服务器发送的第一通知消息,其中,所述第一通知消息用于指示所述第二节点服务器中不存在所述用户数据;以及
在接收到所述第二节点服务器发送的所述第一通知消息的情况下,将所述第一数据请求路由至所述第一节点服务器标识信息所标识的所述第一节点服务器;在未接收到所述第二节点服务器发送的所述第一通知消息,且将所述用户数据存储在所述第二节点服务器中的存储器或者数据库中的情况下,确定所述第一数据请求被所述第二节点服务器响应。
2.根据权利要求1所述的方法,其特征在于,在所述接收终端发送的第一数据请求之前,所述方法还包括:
接收所述终端发送的第二数据请求,其中,所述第二数据请求中携带有所述用户标识信息;
从所述多个节点服务器中选择所述第一节点服务器,并将所述第二数据请求路由至所述第一节点服务器中,其中,所述第二数据请求用于指示所述第一节点服务器存储与所述用户标识信息相对应的所述用户数据。
3.根据权利要求2所述的方法,其特征在于,在所述将所述第二数据请求路由至所述第一节点服务器中之后,所述方法还包括:
所述第一节点服务器将存储的所述用户数据进行上传,以供所述第二节点服务器下载所述用户数据。
4.根据权利要求3所述的方法,其特征在于,在所述将所述第一数据请求路由至所述第二节点服务器之后,所述方法还包括:
在所述第二节点服务器成功下载所述用户数据的情况下,所述第二节点服务器不发送所述第一通知消息;
在所述第二节点服务器未成功下载所述用户数据的情况下,所述第二节点服务器发送所述第一通知消息。
5.根据权利要求1所述的方法,其特征在于,所述根据多个节点服务器的性能参数从所述多个节点服务器中选择第二节点服务器包括:
所述性能参数包括以下至少之一:所述节点服务器的负载量、所述节点服务器的处理效率、所述节点服务器的存储容量、所述终端与所述节点服务器的距离。
6.根据权利要求1所述的方法,其特征在于,
在所述从多个节点服务器中选择第二节点服务器之后,所述方法还包括:记录所述第一数据请求的路由次数;
在接收到所述第二节点服务器发送的所述第一通知消息的情况下,所述将所述第一数据请求路由至所述第一节点服务器标识信息所标识的所述第一节点服务器包括:判断所述路由次数是否超过预定阈值;在所述路由次数超过所述预定阈值的情况下,将所述第一数据请求路由至所述第一节点服务器。
7.根据权利要求6所述的方法,其特征在于,在所述判断所述路由次数是否超过预定阈值之后,所述方法还包括:
在所述路由次数未超过所述预定阈值的情况下,从所述多个节点服务器中选择第三节点服务器,将所述第一数据请求路由至所述第三节点服务器,并累加所述路由次数,其中,所述第三节点服务器为所述多个节点服务器中所述第一数据请求尚未路由至的节点服务器;
在累加后的所述路由次数超过所述预定阈值的情况下,和/或,在接收到所述第三节点服务器发送的第二通知消息的情况下,将所述第一数据请求路由至所述第一节点服务器,其中,所述第二通知消息用于指示所述第三节点服务器中不存在所述用户数据。
8.一种路由装置,其特征在于,包括:
第一接收单元,用于接收终端发送的第一数据请求,其中,所述第一数据请求中携带有用户标识信息和第一节点服务器标识信息,所述第一节点服务器中存储有与所述用户标识信息对应的用户数据;
第一选择单元,用于从多个节点服务器中选择第二节点服务器,并将所述第一数据请求路由至所述第二节点服务器,包括:选择模块,用于根据所述多个节点服务器的性能参数从所述多个节点服务器中选择所述第二节点服务器;
判断单元,用于判断是否接收到所述第二节点服务器发送的第一通知消息,其中,所述第一通知消息用于指示所述第二节点服务器中不存在所述用户数据;以及
路由单元,用于在接收到所述第二节点服务器发送的所述第一通知消息的情况下,将所述第一数据请求路由至所述第一节点服务器标识信息所标识的所述第一节点服务器;还用于在未接收到所述第二节点服务器发送的所述第一通知消息,且将所述用户数据存储在所述第二节点服务器中的存储器或者数据库中的情况下,确定所述第一数据请求被所述第二节点服务器响应。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第二接收单元,用于在所述接收终端发送的第一数据请求之前,接收所述终端发送的第二数据请求,其中,所述第二数据请求中携带有所述用户标识信息;
第二选择单元,用于从所述多个节点服务器中选择所述第一节点服务器,并将所述第二数据请求路由至所述第一节点服务器中,其中,所述第二数据请求用于指示所述第一节点服务器存储与所述用户标识信息相对应的所述用户数据。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
上传单元,用于在所述将所述第二数据请求路由至所述第一节点服务器中之后,所述第一节点服务器将存储的所述用户数据进行上传,以供所述第二节点服务器下载所述用户数据。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第一控制单元,用于在所述将所述第一数据请求路由至所述第二节点服务器之后,在所述第二节点服务器成功下载所述用户数据的情况下,所述第二节点服务器不发送所述第一通知消息;
第二控制单元,用于在所述第二节点服务器未成功下载所述用户数据的情况下,所述第二节点服务器发送所述第一通知消息。
12.根据权利要求8所述的装置,其特征在于,所述选择模块包括:
所述性能参数包括以下至少之一:所述节点服务器的负载量、所述节点服务器的处理效率、所述节点服务器的存储容量、所述终端与所述节点服务器的距离。
13.根据权利要求8所述的装置,其特征在于,
所述装置还包括:记录单元,用于在所述从多个节点服务器中选择第二节点服务器之后,记录所述第一数据请求的路由次数;
所述路由单元包括:判断模块,用于判断所述路由次数是否超过预定阈值;第一路由模块,用于在所述路由次数超过所述预定阈值的情况下,将所述第一数据请求路由至所述第一节点服务器。
14.根据权利要求13所述的装置,其特征在于,所述路由单元还包括:
第二路由模块,用于在所述判断所述路由次数是否超过预定阈值之后,在所述路由次数未超过所述预定阈值的情况下,从所述多个节点服务器中选择第三节点服务器,将所述第一数据请求路由至所述第三节点服务器,并累加所述路由次数,其中,所述第三节点服务器为所述多个节点服务器中所述第一数据请求尚未路由至的节点服务器;
第三路由模块,用于在累加后的所述路由次数超过所述预定阈值的情况下,和/或,在接收到所述第三节点服务器发送的第二通知消息的情况下,将所述第一数据请求路由至所述第一节点服务器,其中,
所述第二通知消息用于指示所述第三节点服务器中不存在所述用户数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610905753.6A CN107959702B (zh) | 2016-10-17 | 2016-10-17 | 路由方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610905753.6A CN107959702B (zh) | 2016-10-17 | 2016-10-17 | 路由方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107959702A CN107959702A (zh) | 2018-04-24 |
CN107959702B true CN107959702B (zh) | 2020-09-29 |
Family
ID=61953988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610905753.6A Active CN107959702B (zh) | 2016-10-17 | 2016-10-17 | 路由方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107959702B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109063121B (zh) * | 2018-08-01 | 2024-04-05 | 平安科技(深圳)有限公司 | 数据存储方法、装置、计算机设备及计算机存储介质 |
CN111147381B (zh) * | 2018-11-02 | 2022-01-18 | 华为技术有限公司 | 流量均衡方法和装置 |
TR201903183A2 (tr) * | 2019-03-04 | 2019-03-21 | Kale Yazilim Sanayi Ve Ticaret Anonim Sirketi | İş sürekli̇li̇ği̇ i̇çi̇n akti̇f akti̇f mi̇mari̇ i̇le çalişan veri̇ merkezleri̇ |
CN115102901A (zh) * | 2022-06-17 | 2022-09-23 | 深圳前海百递网络有限公司 | 路由选择方法、装置、计算机设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103795642A (zh) * | 2014-01-24 | 2014-05-14 | 北京京东尚科信息技术有限公司 | 一种负载均衡的方法及装置 |
CN104811323A (zh) * | 2014-01-23 | 2015-07-29 | 腾讯科技(深圳)有限公司 | 一种数据请求方法、装置、节点服务器及cdn系统 |
CN105578527A (zh) * | 2015-12-11 | 2016-05-11 | 迈普通信技术股份有限公司 | 实现云ac负载均衡的方法、装置及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8478898B2 (en) * | 2005-11-09 | 2013-07-02 | Ca, Inc. | System and method for routing directory service operations in a directory service network |
-
2016
- 2016-10-17 CN CN201610905753.6A patent/CN107959702B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104811323A (zh) * | 2014-01-23 | 2015-07-29 | 腾讯科技(深圳)有限公司 | 一种数据请求方法、装置、节点服务器及cdn系统 |
CN103795642A (zh) * | 2014-01-24 | 2014-05-14 | 北京京东尚科信息技术有限公司 | 一种负载均衡的方法及装置 |
CN105578527A (zh) * | 2015-12-11 | 2016-05-11 | 迈普通信技术股份有限公司 | 实现云ac负载均衡的方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107959702A (zh) | 2018-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107959702B (zh) | 路由方法和装置 | |
CN103339901B (zh) | 内容导向网络环境中的终端和中间节点以及终端和中间节点的通信方法 | |
CN109561054B (zh) | 一种数据传输方法、控制器及接入设备 | |
CN110995513B (zh) | 物联网系统中的数据发送、接收方法、物联网设备及平台 | |
US20160352815A1 (en) | Data Distribution Based on Network Information | |
CN110597922B (zh) | 数据处理方法、装置、终端及存储介质 | |
CN110581784B (zh) | 一种节点健康检查方法、装置及设备 | |
CN107733995A (zh) | 一种会话保持方法、装置和电子设备 | |
CN111327650A (zh) | 数据传输方法、装置、设备及存储介质 | |
CN108055314A (zh) | 一种集群系统的管理方法与集群系统 | |
CN105281987B (zh) | 路由器及数据上传方法、装置、系统 | |
WO2016114750A1 (en) | Data link layer information | |
CN107343037B (zh) | 一种分布式存储系统的数据传输方法及装置 | |
CN110708383B (zh) | 区块链节点的网络连接方法及相关设备 | |
CN110851275B (zh) | 路由节点的负载转移方法及装置 | |
CN111800491A (zh) | 一种数据传输方法、系统、计算设备及存储介质 | |
CN111385324A (zh) | 一种数据通信方法、装置、设备和存储介质 | |
CN112711465B (zh) | 基于云平台的数据处理方法、装置、电子设备及存储介质 | |
CN105450519A (zh) | 报文的发送方法及核心交换机 | |
CN113535402A (zh) | 基于5g mec的负载均衡处理方法、装置及电子设备 | |
CN107086958B (zh) | 一种数据传输方法、wap网关及系统 | |
CN103731511A (zh) | 一种p2p系统中数据获取方法和装置 | |
CN107210996B (zh) | 一种业务链管理方法及装置 | |
CN115996188A (zh) | 业务调度方法、装置、设备及计算机可读存储介质 | |
JP6204256B2 (ja) | 分散処理システム、分散データ管理装置および分散データ管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |