CN107172214A - 一种具有负载均衡的服务节点发现方法及装置 - Google Patents
一种具有负载均衡的服务节点发现方法及装置 Download PDFInfo
- Publication number
- CN107172214A CN107172214A CN201710585605.5A CN201710585605A CN107172214A CN 107172214 A CN107172214 A CN 107172214A CN 201710585605 A CN201710585605 A CN 201710585605A CN 107172214 A CN107172214 A CN 107172214A
- Authority
- CN
- China
- Prior art keywords
- service
- management center
- center server
- load
- load information
- 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.)
- Granted
Links
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
-
- 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
Abstract
本申请公开了一种具有负载均衡的服务节点发现方法及装置,该方法包括:接收携带有服务标识的服务获取请求,从服务管理中心服务器,获取预先存储的每个包含所述服务标识对应的服务的服务端的负载信息,根据所获取到的负载信息以及本地存储的第一负载均衡算法,确定待执行服务的服务端,并将所述服务获取请求发送给所述待执行服务的服务端。通过上述方法,服务管理中心服务器通过发送心跳包来获取各提供服务的服务端的负载信息并存储在本地,后续,具有负载均衡功能的客户端或者服务端均可以从服务管理中心服务器中获取到所需服务端的负载信息,这样能够可以高效简单的实现自带负载均衡的服务节点发现。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种具有负载均衡的服务节点发现方法及装置。
背景技术
随着互联网以及计算机技术的不断发展,一个应用或者软件所对应的后端服务节点越来越多,可能成千上万个,针对大量的服务节点以及高并发的用户访问情况,需要采用分布式部署服务。
进一步的,当采用分布式部署服务时,如果发生某服务节点宕机下线的情况,如果其他服务节点无法感知且快速进行故障转移,将对用户体验产生很大的影响。
因此,需要建立服务节点发现系统,用来实时获取对应的大量服务信息,管理位于应用或软件后端的服务节点,从而保证高可用性提供基础。
但是,在分布式部署服务系统中的高并发请求还会带来负载均衡的问题,而目前,负载均衡都是独立于服务节点发现系统以外的独立模块或者组件,也就是说,服务节点发现系统和负载均衡组件都是独立存在的,并混合使用,这样部署以及实施负载均衡组件都会比较复杂,因此,设计一套高效简单的实现自带负载均衡的服务节点发现方法是一种亟待解决的问题。
发明内容
本申请实施例提供一种具有负载均衡的服务节点发现方法及装置,能够高效简单的实现自带负载均衡的服务节点发现。
本申请实施例提供的一种具有负载均衡的服务节点发现方法,包括:
接收服务获取请求,其中,所述服务获取请求中携带有服务标识;
从服务管理中心服务器,获取预先存储的每个包含所述服务标识对应的服务的服务端的负载信息;
根据所获取到的负载信息以及本地存储的负载均衡算法,确定待执行服务的服务端,并将所述服务获取请求发送给所述待执行服务的服务端。
优选地,服务端接收客户端发送的服务获取请求,其中,服务端具有负载均衡功能;或客户端接收用户发送的服务获取请求,其中,客户端具有负载均衡功能。
优选地,当所述服务管理中心服务器内部包括至少两个子服务管理中心服务器时,在服务端接收客户端发送的服务获取请求之前,所述方法还包括:子服务管理中心服务器接收具有负载均衡功能的服务端和/或每个包含所述服务标识对应的服务的服务端发送的注册请求,注册本地存储的将所述注册请求发送给待执行注册的子服务管理中心服务器;子服务管理中心服务将所述注册请求发送给待执行注册的子服务管理中心服务器;或
当所述服务管理中心服务器内部包括至少两个子服务管理中心服务器时,在客户端接收用户发送的服务获取请求之前,所述方法还包括:子服务管理中心服务器接收客户端以及每个包含所述服务标识对应的服务的服务端发送的注册请求,根据本地存储的子服务管理中心服务器的负载信息,确定待执行注册的子服务管理中心服务器,将所述注册请求发送给待执行注册的子服务管理中心服务器。
优选地,针对每个包含所述服务标识对应的服务的服务端,服务管理中心服务器向该包含所述服务标识对应的服务的服务端发送心跳包,其中,所述心跳包中携带有负载信息获取指令,所述服务管理中心服务器中注册有包含所述服务标识对应的服务的服务端,接收该包含所述服务标识对应的服务的服务端执行所携带的负载信息获取指令返回的最新的负载信息。
优选地,当至少包括两个服务管理中心服务器时,在接收该包含所述服务标识对应的服务的服务端执行所携带的负载信息获取指令返回的最新的负载信息之后,所述方法还包括:将接收到的该包含所述服务标识对应的服务的服务端执行所携带的负载信息获取指令返回的最新的负载信息同步到其他服务管理中心服务器中。
本申请实施例提供的一种具有负载均衡的服务节点发现装置,包括:
接收模块,用于接收服务获取请求,其中,所述服务获取请求中携带有服务标识;
获取模块,用于从服务管理中心服务器,获取预先存储的每个包含所述服务标识对应的服务的服务端的负载信息;
确定发送模块,用于根据所获取到的负载信息以及本地存储的负载均衡算法,确定待执行服务的服务端,并将所述服务获取请求发送给所述待执行服务的服务端。
优选地,所述接收模块具体用于,服务端接收客户端发送的服务获取请求,其中,服务端具有负载均衡功能;或客户端接收用户发送的服务获取请求,其中,客户端具有负载均衡功能。
优选地,所述装置还包括:
注册模块,用于在所述接收模块接收客户端发送的服务获取请求之前,当所述服务管理中心服务器内部包括至少两个子服务管理中心服务器时,子服务管理中心服务器接收具有负载均衡功能的服务端和/或每个包含所述服务标识对应的服务的服务端发送的注册请求,根据本地存储的子服务管理中心服务器的负载信息,确定待执行注册的子服务管理中心服务器,将所述注册请求发送给待执行注册的子服务管理中心服务器,其中,所述接收模块位于所述具有负载均衡功能的服务端内;或
还用于,在所述接收模块接收用户发送的服务获取请求之前,当所述服务管理中心服务器内部包括至少两个子服务管理中心服务器时,子服务管理中心服务器接收客户端以及每个包含所述服务标识对应的服务的服务端发送的注册请求,根据本地存储的子服务管理中心服务器的负载信息,确定待执行注册的子服务管理中心服务器,将所述注册请求发送给待执行注册的子服务管理中心服务器,其中,所述接收模块位于所述客户端内。
优选地,所述装置还包括:
预先存储模块,用于针对每个包含所述服务标识对应的服务的服务端,服务管理中心服务器向该包含所述服务标识对应的服务的服务端发送心跳包,其中,所述心跳包中携带有负载信息获取指令,所述服务管理中心服务器中注册有包含所述服务标识对应的服务的服务端,接收该包含所述服务标识对应的服务的服务端执行所携带的负载信息获取指令返回的最新的负载信息。
优选地,所述装置还包括:
同步模块,用于在所述预先存储模块接收该包含所述服务标识对应的服务的服务端执行所携带的负载信息获取指令返回的最新的负载信息之后,当至少包括两个服务管理中心服务器时,将接收到的该包含所述服务标识对应的服务的服务端执行所携带的负载信息获取指令返回的最新的负载信息同步到其他服务管理中心服务器中。
本申请实施例提供一种具有负载均衡的服务节点发现方法及装置,该方法包括:接收服务获取请求,其中,所述服务获取请求中携带有服务标识,从服务管理中心服务器,获取预先存储的每个包含所述服务标识对应的服务的服务端的负载信息,根据所获取到的负载信息以及本地存储的第一负载均衡算法,确定待执行服务的服务端,并将所述服务获取请求发送给所述待执行服务的服务端。通过上述方法,服务管理中心服务器通过发送心跳包来获取各提供服务的服务端的负载信息并存储在本地,后续,具有负载均衡功能的客户端或者服务端均可以从服务管理中心服务器中获取到所需服务端的负载信息,这样能够可以高效简单的实现自带负载均衡的服务节点发现。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的具有负载均衡的服务节点发现的过程示意图;
图2为本申请实施例提供的注册与负载信息获取的过程示意图;
图3为本申请实施例提供的注销的过程示意图;
图4为本申请实施例提供的具有负载均衡的服务节点发现示例;
图5为本申请实施例提供的涉及到注册、订阅以及注销时的服务端,客户端以及服务管理中心服务器三者之间的架构图;
图6为本申请实施例提供的具有负载均衡的服务节点发现装置的结构示意图;
图7为本申请实施例提供的具有负载均衡的服务节点发现系统组成结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的具有负载均衡的服务节点发现过程,具体包括以下步骤:
S101:接收服务获取请求。
在实际应用中,用户通过本申请的具有负载均衡的服务节点发现系统使用服务过程中,首先需要接收服务获取请求。
在此需要说明的是,所接收到的服务获取请求中携带有服务标识,该服务标识能唯一标识一个服务。
进一步的,由于提供同一服务的服务端通常是采用分布式部署服务的,也就是说,存在多个服务端提供同一种服务,因此,在接收到服务获取请求后,需要确定将该服务获取请求发送到哪个服务端。
而确定将该服务获取请求发送到哪个服务端具体可以通过负载均衡来进行确定。
进一步的,由于在实际应用中,有可能是客户端具有负载均衡功能,也就是说,客户端直接调用负载均衡功能将所接收到服务获取请求发送给相应的服务端,也有可能是服务端具有负载均衡功能,也就是说,服务端直接调用负载均衡功能将所接收到服务获取请求发送给相应的服务端,针对上述两种情况,在本申请中,接收服务获取请求,也包括两种情况,具体如下:
第一种情况,服务端接收客户端发送的服务获取请求,其中,服务端具有负载均衡功能。
第二种情况,客户端接收用户发送的服务获取请求,其中,客户端具有负载均衡功能。
在此需要说明的是,第一种情况中所提到的服务端具体是在客户端与提供服务的服务端之间所建立的,也就是说,单独建立一个服务端,该服务端对外所只提供负载均衡服务,客户端发送给提供客户端所需服务的服务端的服务获取请求,均需要经过具有负载均衡的服务端。第二种情况中,客户端接收用户发送的服务获取请求具体指的是,用户在客户端的指定位置所进行的指定操作,如,在客户端上的搜索栏填写搜索词,并点击搜索确定按钮。
S102:从服务管理中心服务器,获取预先存储的每个包含所述服务标识对应的服务的服务端的负载信息。
进一步的,当接收到服务获取请求后,由于需要进行负载均衡,而在进行负载均衡的过程中,需要根据每个包含所述服务标识对应的服务的服务端的负载信息,以及本地存储的负载均衡算法才可以执行负载均衡,因此,在本申请中,需要获取每个包含所述服务标识对应的服务的服务端的负载信息。
在此需要说明的是,获取每个包含所述服务标识对应的服务的服务端的负载信息具体是从服务管理中心服务器中获取的,该服务管理中心服务器用于存储各服务端的服务状态信息(如,服务名,分配的唯一标识,服务状态)以及负载信息,还有更新日志,这些存储的服务状态信息以及负载信息可以采用主主模式。
另外,由于服务管理中心服务器中存储有各提供服务的服务端的负载信息,而存储各提供服务的服务端的负载信息之前,需要提前从各提供服务的服务端中获取到负载信息,因此,在本申请中,可以针对每个包含服务标识对应的服务的服务端,服务管理中心服务器向该包含服务标识对应的服务的服务端发送心跳包,其中,该心跳包中携带有负载信息获取指令,该服务管理中心服务器中注册有包含所述服务标识对应的服务的服务端,接收该包含该服务标识对应的服务的服务端执行所携带的负载信息获取指令返回的最新的负载信息。
在此需要说明的是,服务端当前的负载信息数据量小,心跳包传输方便,可以为整个负载均衡过程提供极大的便利,与此同时,心跳包还可以有效监测各服务端的状态,可以及时发现服务端是否失效。
另外,在此还需要说明的是,为了方便管理各服务端所提供的服务,服务管理中心服务器只对外提供已经在本地注册过的服务端所提供的服务,并对已注册的服务端采用心跳包的形式来获取各服务端的负载信息。
因此,在本申请中,在执行步骤S101接收服务获取请求之前,需要对包含所述服务标识对应的服务的服务端进行注册。
进一步的,由于为了保证服务管理中心服务器的高可用性,因此,通常采用多点部署,也就是说,服务管理中心服务器内部包括至少两个子服务管理中心服务器。
另外,又由于在接收服务获取请求时,存在两种情况,因此,在本申请中,在对包含所述服务标识对应的服务的服务端进行注册的过程具体如下:
第一种情况,当服务端接收客户端发送的服务获取请求时,在服务端接收客户端发送的服务获取请求之前,子服务管理中心服务器接收具有负载均衡功能的服务端和/或每个包含所述服务标识对应的服务的服务端发送的注册请求,注册本地存储的将所述注册请求发送给待执行注册的子服务管理中心服务器;子服务管理中心服务将所述注册请求发送给待执行注册的子服务管理中心服务器。
第二种情况,当客户端接收用户发送的服务获取请求时,在客户端接收用户发送的服务获取请求之前,子服务管理中心服务器接收客户端以及每个包含所述服务标识对应的服务的服务端发送的注册请求,根据本地存储的子服务管理中心服务器的负载信息,确定待执行注册的子服务管理中心服务器,将所述注册请求发送给待执行注册的子服务管理中心服务器。
在此需要说明的是,具有负载均衡功能的服务端本身可以看做一个专门提供负载均衡服务的服务端,该服务端也需要在服务管理中心服务器中进行注册,另外,无论第一种情况还是第二种情况中,客户端要想使用服务管理中心服务器中所管理的服务,均需要在服务管理中心服务器中注册,也就是说,服务管理中心服务器只为注册在本地的客户端提供服务。
进一步的,由于服务管理中心服务器维护全局的服务信息,如果只设立一个服务管理中心服务器,那么该服务管理中心服务器出现宕机的情况,很容易造成具有负载均衡的服务节点发现系统瘫痪,因此,为了提高服务管理中心服务器的高可用性,避免一个服务管理中心服务器故障不可用的情况,可以建立至少两个服务管理中心服务器,两个服务管理中心服务器采用主主模式,当一个服务管理中心服务器不可用后,可快速进行切换。
在此需要说明的是,当存在至少两个服务管理中心服务器时,每个服务管理中心服务器是管理和监测固定的服务端以及客户端的,并且每个管理服务中心服务器所管理的固定的服务端以及客户端具体是在该服务管理中心服务器中所注册的服务端以及客户端,也就是说,针对任一服务管理中心服务器,该服务管理中心服务器只是通过心跳包来监测并获取在本地注册过的服务端负载信息以及状态信息,对于在其他服务管理中心服务器中并不进行管理和监测,这样,每个服务管理中心服务器都有对应的所要管理和监测的服务端以及客户端,与此同时,服务端以及客户端也只能在其注册过的服务管理中心服务器中查看其它服务端以及客户端的状态信息以及负载信息。
进一步的,又由于每个服务管理中心服务器是管理和监测固定的服务端以及客户端的,并且服务端以及客户端也只能在其注册过的服务管理中心服务器中查看其它服务端以及客户端的状态信息以及负载信息,如果具有负载均衡的客户端或者具有负载均衡的服务端所接收到的服务获取请求与提供该服务获取请求对应的服务的服务端并不属于同一服务管理中心服务器管理,那么具有负载均衡的客户端或者具有负载均衡的服务端就无法从服务管理中心服务器中获取到提供该服务获取请求对应的服务的服务端的负载信息,因此,需要对每个服务管理中心服务器进行同步,具体的,当至少包括两个服务管理中心服务器时,在接收该包含所述服务标识对应的服务的服务端执行所携带的负载信息获取指令返回的最新的负载信息之后,将接收到的该包含所述服务标识对应的服务的服务端执行所携带的负载信息获取指令返回的最新的负载信息同步到其他服务管理中心服务器中,也就是说,保持每个服务管理中心服务器中的信息(各服务端的负载信息以及状态信息)的一致性,这样,具有负载均衡的客户端或者具有负载均衡的服务端无论在哪个服务管理中心服务器注册并被其管理和监测,均可以在该服务管理中心服务器中查找到任何一个服务端的负载信息以及状态信息。
在此需要说明的是,服务管理中心服务器维护了所有服务的状态信息以及负载信息,并提供了选主功能。
在此还需要说明的是,本申请中客户端以及服务端在服务管理中心服务器中注册完之后,可以订阅服务或者取消订阅的服务,并且,客户端以及服务端还可以注销在服务管理中心服务器中的注册。另外,当服务端的服务需要升级或者注销时,将会主动上报自己的情况,服务管理中心服务器会通知其他已订阅的关心该服务的服务端以及客户端。
S103:根据所获取到的负载信息以及本地存储的负载均衡算法,确定待执行服务的服务端,并将所述服务获取请求发送给所述待执行服务的服务端。
进一步的,在获取到负载信息后,需要根据本地存储的负载均衡算法,确定多个提供服务标识对应的服务的服务端中到底哪一个服务端执行服务,即,确定待执行服务的服务端,并将所接收到的服务获取请求发送给该待执行服务的服务端。
在此需要说明的是,负载均衡算法是预先内置到本地程序中的,也就是说,假设客户端具有负载均衡功能,那么该客户端的开发者在开发客户端时会将选择好的负载均衡算法写入到客户端程序中,该负载均衡算法可以是一个,也可以是两个以上,在存在两个以上的负载均衡算法时,可以根据不同的情况下,选择一种负载均衡算法,总之,开发者可以根据实际情况以及自己需求的策略来选用并设定具有负载均衡功能的客户端以及具有负载均衡功能的服务端中的负载均衡算法。
通过上述方法,服务管理中心服务器通过发送心跳包来获取各提供服务的服务端的负载信息并存储在本地,后续,具有负载均衡功能的客户端或者服务端均可以从服务管理中心服务器中获取到所需服务端的负载信息,这样能够可以高效简单的实现自带负载均衡的服务节点发现。
进一步的,为了能够更好的说明服务端在服务管理中心服务器中注册与服务管理中心服务器获取服务端的负载信息的过程,以下结合图2进行实例说明。
S201:服务端A将注册请求发送给服务管理中心服务器A;
S202:服务管理中心服务器A根据各子服务管理中心服务器的负载信息进行负载均衡,选择最优负载的子服务管理中心服务器执行注册服务;
S203:服务管理中心服务器A将注册成功的信息返回给服务端A;
S204:服务管理中心服务器A将新注册的服务端A的状态信息同步给服务管理中心服务器B;
S205:服务管理中心服务器B将同步成功的信息返回给服务管理中心服务器A;
S206:服务管理中心服务器A将携带有负载信息获取指令的心跳包发送给服务端A;
在此需要说明的是,由于服务端A是在服务管理中心服务器A中注册的,因此,服务管理中心服务器A会监测并获取服务端A的负载信息。
S207:服务端A执行负载信息获取指令将负载信息返回给服务管理中心服务器A;
S208:服务管理中心服务器A将获取到服务端A的负载信息发送给服务管理中心服务器B;
S209:服务管理中心服务器B返回同步成功的信息给服务管理中心服务器A;
S210:服务管理中心服务器B将携带有负载信息获取指令的心跳包发送给服务端B;
在此需要说明的是,由于服务端B是在服务管理中心服务器B中注册的,因此,服务管理中心服务器B会监测并获取服务端B的负载信息。
S211:服务端B执行负载信息获取指令将负载信息返回给服务管理中心服务器B;
另外,在实际应用中,服务端以及客户端也可以注销在服务管理中心服务器中进行注销,为了能够更好的说明服务端在服务管理中心服务器中注销已注册的服务,以下结合图3进行实例说明。
S301:服务端A将注销请求发送给服务管理中心服务器A;
S302:服务管理中心服务器A根据各子服务管理中心服务器的负载信息进行负载均衡,选择最优负载的子服务管理中心服务器执行注销服务;
S303:服务管理中心服务器A将注销成功的信息返回给服务端A;
S304:服务管理中心服务器A将注销的服务端A的信息同步给服务管理中心服务器B;
S305:服务管理中心服务器B将注销成功的信息返回给服务管理中心服务器A;
S306:服务管理中心服务器B服务端A注销通知发送给服务端B。
进一步的,为了能够更好的说明具有负载均衡的服务节点发现的过程,以下结合图4进行实例说明.
S401:客户端将服务获取请求发送给服务端A;
在此需要说明的是,客户端本身不具有负载均衡功能,而服务端A是对外提供负载均衡服务的服务端,也就是说,服务端A具有负载均衡的功能,客户端所发送的服务获取请求实际上是经过服务端A的负载均衡发往服务端B的,另外,服务获取请求携带有服务标识。
S402:服务端A在本地查找服务端B的负载信息;
在此需要说明的是,服务端B是提供客户端所需服务的,也就是说,服务端B包含有服务标识对应的服务。
S403:服务端A向服务管理中心服务器A发送服务端B的信息获取请求;
在此需要说明的是,服务端A如果在本地缓存中没有查找到服务端B的信息,则需要从服务管理中心服务器A中获取服务端B的信息,另外,服务端A是直接在服务管理中心服务器A中进行注册过的。
S404:服务管理中心服务器A将服务端B的全局信息返回给服务端A;
在此需要说明的是,服务端B的全局信息包含服务端B的负载信息。
S405:服务端A根据每个子服务端B的负载信息进行负载均衡,选择最优负载的子服务端B执行注册服务;
在此需要说明的是,图4中所示的服务端B中是包含多个子服务端B的。
S406:服务端A将服务获取请求发送给服务端B中最优负载的子服务端B;
S407:服务端B中最优负载的子服务端B返回服务获取请求对应的服务信息给服务端A;
S408:服务端A返回服务获取请求对应的服务信息给客户端。
最后,本申请也给出了具有负载均衡的服务节点发现中涉及到注册、订阅以及注销时的服务端,客户端以及服务管理中心服务器三者之间的架构图,具体如图5所示,其中,服务管理中心服务器监测并管理着不同的客户端以及服务端。
在此需要说明的是,如图5所示的客户端与服务管理中心服务器只是举例,并不表示只有这一种连接方式,具体怎么连接根据客户端实际注册情况来定,另外,服务端与服务管理中心服务器同理。
以上为本申请实施例提供的具有负载均衡的服务节点发现方法,基于同样的思路,本申请实施例还提供一种具有负载均衡的服务节点发现装置。
如图6所示,本申请实施例提供的一种具有负载均衡的服务节点发现装置包括:
接收模块601,用于接收服务获取请求,其中,所述服务获取请求中携带有服务标识;
获取模块602,用于从服务管理中心服务器,获取预先存储的每个包含所述服务标识对应的服务的服务端的负载信息;
确定发送模块603,用于根据所获取到的负载信息以及本地存储的负载均衡算法,确定待执行服务的服务端,并将所述服务获取请求发送给所述待执行服务的服务端。
所述接收模块601具体用于,服务端接收客户端发送的服务获取请求,其中,服务端具有负载均衡功能;或客户端接收用户发送的服务获取请求,其中,客户端具有负载均衡功能。
所述装置还包括:
注册模块604,用于在所述接收模块601接收客户端发送的服务获取请求之前,当所述服务管理中心服务器内部包括至少两个子服务管理中心服务器时,子服务管理中心服务器接收具有负载均衡功能的服务端和/或每个包含所述服务标识对应的服务的服务端发送的注册请求,根据本地存储的子服务管理中心服务器的负载信息,确定待执行注册的子服务管理中心服务器,将所述注册请求发送给待执行注册的子服务管理中心服务器,其中,所述接收模块201位于所述具有负载均衡功能的服务端内;或
还用于,在所述接收模块601接收用户发送的服务获取请求之前,当所述服务管理中心服务器内部包括至少两个子服务管理中心服务器时,子服务管理中心服务器接收客户端以及每个包含所述服务标识对应的服务的服务端发送的注册请求,根据本地存储的子服务管理中心服务器的负载信息,确定待执行注册的子服务管理中心服务器,将所述注册请求发送给待执行注册的子服务管理中心服务器,其中,所述接收模块601位于所述客户端内。
所述装置还包括:
预先存储模块605,用于针对每个包含所述服务标识对应的服务的服务端,服务管理中心服务器向该包含所述服务标识对应的服务的服务端发送心跳包,其中,所述心跳包中携带有负载信息获取指令,所述服务管理中心服务器中注册有包含所述服务标识对应的服务的服务端,接收该包含所述服务标识对应的服务的服务端执行所携带的负载信息获取指令返回的最新的负载信息。
所述装置还包括:
同步模块606,用于在所述预先存储模块605接收该包含所述服务标识对应的服务的服务端执行所携带的负载信息获取指令返回的最新的负载信息之后,当至少包括两个服务管理中心服务器时,将接收到的该包含所述服务标识对应的服务的服务端执行所携带的负载信息获取指令返回的最新的负载信息同步到其他服务管理中心服务器中。
另外,本申请实施例还提供一种具有负载均衡的服务节点发现系统,该系统包括:
处理器、计算机可读存储器、和计算机可读存储介质;
程序,用于接收服务获取请求,其中,所述服务获取请求中携带有服务标识,从服务管理中心服务器,获取预先存储的每个包含所述服务标识对应的服务的服务端的负载信息,根据所获取到的负载信息以及本地存储的负载均衡算法,确定待执行服务的服务端,并将所述服务获取请求发送给所述待执行服务的服务端。
所述程序存储在所述计算机可读存储介质上,用于由所述处理器经由所述计算机可读存储器执行。
所述处理器、计算机可读存储器以及所述计算机可读存储介质可以用图7中的处理器、内部存储器、外部存储器来实现。
其中,图7为具有负载均衡的服务节点发现系统组成结构框图,其中示出了具有负载均衡的服务节点发现系统的主要部件。图7中,处理器710、内部存储器705、总线桥720以及网络接口715接入系统总线740,总线桥720用于桥接系统总线740和I/O总线745,I/O接口接入I/O总线745,USB接口以及外部存储器与I/O接口连接。图7中,处理器710可以为一个或多个处理器,每个处理器可以具有一个或者多个处理器内核;内部存储器705为易失性存储器,例如寄存器、缓存器、各种类型的随机存取存储器等;在具有负载均衡的服务节点发现系统运行的时候,内部存储器705中的数据包括操作系统和应用程序;网络接口715可以为以太网接口、光纤接口等;系统总线740可以用来传送数据信息、地址信息、以及控制信息;总线桥720可以用来进行协议转换,将系统总线协议转换为I/O协议或者将I/O协议转换为系统总线协议以实现数据传输;I/O总线745用来数据信息和控制信息,还可以总线终结电阻或电路来降低信号反射干扰;I/O接口730主要与各种外部设备连接,例如键盘、鼠标、传感器等等,闪存可以通过USB接口接入I/O总线,外部存储器为非易失性存储器,例如硬盘、光盘等。在具有负载均衡的服务节点发现系统运行之后,处理器可以将存储于外部存储其中的数据读取到内部存储器中,并对内部存储其中的系统指令进行处理,完成操作系统以及应用程序的功能。该示例具有负载均衡的服务节点发现系统可以为位于台式机、笔记本电脑、平板电脑、智能手机等。
优选地,所述程序还用于,服务端接收客户端发送的服务获取请求,其中,服务端具有负载均衡功能;或客户端接收用户发送的服务获取请求,其中,客户端具有负载均衡功能。
优选地,所述程序还用于,当所述服务管理中心服务器内部包括至少两个子服务管理中心服务器时,在服务端接收客户端发送的服务获取请求之前,所述方法还包括:子服务管理中心服务器接收具有负载均衡功能的服务端和/或每个包含所述服务标识对应的服务的服务端发送的注册请求,注册本地存储的将所述注册请求发送给待执行注册的子服务管理中心服务器;子服务管理中心服务将所述注册请求发送给待执行注册的子服务管理中心服务器;或
当所述服务管理中心服务器内部包括至少两个子服务管理中心服务器时,在客户端接收用户发送的服务获取请求之前,所述方法还包括:子服务管理中心服务器接收客户端以及每个包含所述服务标识对应的服务的服务端发送的注册请求,根据本地存储的子服务管理中心服务器的负载信息,确定待执行注册的子服务管理中心服务器,将所述注册请求发送给待执行注册的子服务管理中心服务器。
优选地,所述程序还用于,针对每个包含所述服务标识对应的服务的服务端,服务管理中心服务器向该包含所述服务标识对应的服务的服务端发送心跳包,其中,所述心跳包中携带有负载信息获取指令,所述服务管理中心服务器中注册有包含所述服务标识对应的服务的服务端,接收该包含所述服务标识对应的服务的服务端执行所携带的负载信息获取指令返回的最新的负载信息。
优选地,所述程序还用于,当至少包括两个服务管理中心服务器时,在接收该包含所述服务标识对应的服务的服务端执行所携带的负载信息获取指令返回的最新的负载信息之后,所述方法还包括:将接收到的该包含所述服务标识对应的服务的服务端执行所携带的负载信息获取指令返回的最新的负载信息同步到其他服务管理中心服务器中。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种具有负载均衡的服务节点发现方法,其特征在于,包括:
接收服务获取请求,其中,所述服务获取请求中携带有服务标识;
从服务管理中心服务器,获取预先存储的每个包含所述服务标识对应的服务的服务端的负载信息;
根据所获取到的负载信息以及本地存储的负载均衡算法,确定待执行服务的服务端,并将所述服务获取请求发送给所述待执行服务的服务端。
2.如权利要求1所述的方法,其特征在于,接收服务获取请求,具体包括:
服务端接收客户端发送的服务获取请求,其中,服务端具有负载均衡功能;或
客户端接收用户发送的服务获取请求,其中,客户端具有负载均衡功能。
3.如权利要求2所述的方法,其特征在于,当所述服务管理中心服务器内部包括至少两个子服务管理中心服务器时,在服务端接收客户端发送的服务获取请求之前,所述方法还包括:
子服务管理中心服务器接收具有负载均衡功能的服务端和/或每个包含所述服务标识对应的服务的服务端发送的注册请求;
注册本地存储的将所述注册请求发送给待执行注册的子服务管理中心服务器;子服务管理中心服务将所述注册请求发送给待执行注册的子服务管理中心服务器;或
当所述服务管理中心服务器内部包括至少两个子服务管理中心服务器时,在客户端接收用户发送的服务获取请求之前,所述方法还包括:
子服务管理中心服务器接收客户端以及每个包含所述服务标识对应的服务的服务端发送的注册请求;
根据本地存储的子服务管理中心服务器的负载信息,确定待执行注册的子服务管理中心服务器;
将所述注册请求发送给待执行注册的子服务管理中心服务器。
4.如权利要求3所述的方法,其特征在于,预先存储每个包含所述服务标识对应的服务的服务端的负载信息,具体包括:
针对每个包含所述服务标识对应的服务的服务端,服务管理中心服务器向该包含所述服务标识对应的服务的服务端发送心跳包,其中,所述心跳包中携带有负载信息获取指令,所述服务管理中心服务器中注册有包含所述服务标识对应的服务的服务端;
接收该包含所述服务标识对应的服务的服务端执行所携带的负载信息获取指令返回的最新的负载信息。
5.如权利要求3所述的方法,其特征在于,当至少包括两个服务管理中心服务器时,在接收该包含所述服务标识对应的服务的服务端执行所携带的负载信息获取指令返回的最新的负载信息之后,所述方法还包括:
将接收到的该包含所述服务标识对应的服务的服务端执行所携带的负载信息获取指令返回的最新的负载信息同步到其他服务管理中心服务器中。
6.一种具有负载均衡的服务节点发现装置,其特征在于,包括:
接收模块,用于接收服务获取请求,其中,所述服务获取请求中携带有服务标识;
获取模块,用于从服务管理中心服务器,获取预先存储的每个包含所述服务标识对应的服务的服务端的负载信息;
确定发送模块,用于根据所获取到的负载信息以及本地存储的负载均衡算法,确定待执行服务的服务端,并将所述服务获取请求发送给所述待执行服务的服务端。
7.如权利要求6所述的装置,其特征在于,所述接收模块具体用于,服务端接收客户端发送的服务获取请求,其中,服务端具有负载均衡功能;或客户端接收用户发送的服务获取请求,其中,客户端具有负载均衡功能。
8.如权利要求7所述的装置,其特征在于,所述装置还包括:
注册模块,用于在所述接收模块接收客户端发送的服务获取请求之前,当所述服务管理中心服务器内部包括至少两个子服务管理中心服务器时,子服务管理中心服务器接收具有负载均衡功能的服务端和/或每个包含所述服务标识对应的服务的服务端发送的注册请求,根据本地存储的子服务管理中心服务器的负载信息,确定待执行注册的子服务管理中心服务器,将所述注册请求发送给待执行注册的子服务管理中心服务器,其中,所述接收模块位于所述具有负载均衡功能的服务端内;或
还用于,在所述接收模块接收用户发送的服务获取请求之前,当所述服务管理中心服务器内部包括至少两个子服务管理中心服务器时,子服务管理中心服务器接收客户端以及每个包含所述服务标识对应的服务的服务端发送的注册请求,根据本地存储的子服务管理中心服务器的负载信息,确定待执行注册的子服务管理中心服务器,将所述注册请求发送给待执行注册的子服务管理中心服务器,其中,所述接收模块位于所述客户端内。
9.如权利要求8所述的装置,其特征在于,所述装置还包括:
预先存储模块,用于针对每个包含所述服务标识对应的服务的服务端,服务管理中心服务器向该包含所述服务标识对应的服务的服务端发送心跳包,其中,所述心跳包中携带有负载信息获取指令,所述服务管理中心服务器中注册有包含所述服务标识对应的服务的服务端,接收该包含所述服务标识对应的服务的服务端执行所携带的负载信息获取指令返回的最新的负载信息。
10.如权利要求8所述的装置,其特征在于,所述装置还包括:
同步模块,用于在所述预先存储模块接收该包含所述服务标识对应的服务的服务端执行所携带的负载信息获取指令返回的最新的负载信息之后,当至少包括两个服务管理中心服务器时,将接收到的该包含所述服务标识对应的服务的服务端执行所携带的负载信息获取指令返回的最新的负载信息同步到其他服务管理中心服务器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710585605.5A CN107172214B (zh) | 2017-07-18 | 2017-07-18 | 一种具有负载均衡的服务节点发现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710585605.5A CN107172214B (zh) | 2017-07-18 | 2017-07-18 | 一种具有负载均衡的服务节点发现方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107172214A true CN107172214A (zh) | 2017-09-15 |
CN107172214B CN107172214B (zh) | 2020-08-28 |
Family
ID=59816932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710585605.5A Active CN107172214B (zh) | 2017-07-18 | 2017-07-18 | 一种具有负载均衡的服务节点发现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107172214B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109726012A (zh) * | 2018-12-27 | 2019-05-07 | 湖南亚信软件有限公司 | 一种任务调度方法、装置及调度服务器 |
CN111556142A (zh) * | 2020-04-26 | 2020-08-18 | 天津中新智冠信息技术有限公司 | 服务调用方法、装置及系统 |
CN112202755A (zh) * | 2020-09-25 | 2021-01-08 | 浙江华创视讯科技有限公司 | 一种服务器分配方法、装置、设备及介质 |
CN112416888A (zh) * | 2020-10-16 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 用于分布式文件系统的动态负载均衡方法及系统 |
CN115426248A (zh) * | 2022-08-01 | 2022-12-02 | 中国人民银行数字货币研究所 | 服务管理方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104079630A (zh) * | 2014-06-09 | 2014-10-01 | 中国建设银行股份有限公司 | 一种业务服务端负载均衡方法、客户端、服务端以及系统 |
CN104168326A (zh) * | 2014-08-27 | 2014-11-26 | 福建星网视易信息系统有限公司 | 一种服务器均衡负载的方法及系统 |
CN104219325A (zh) * | 2014-09-23 | 2014-12-17 | 中国南方电网有限责任公司 | 一种soa负载均衡装置及应用该装置的路由算法 |
US20140372550A1 (en) * | 2013-06-12 | 2014-12-18 | Sap Ag | Metadata-driven dynamic load balancing in multi-tenant systems |
-
2017
- 2017-07-18 CN CN201710585605.5A patent/CN107172214B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140372550A1 (en) * | 2013-06-12 | 2014-12-18 | Sap Ag | Metadata-driven dynamic load balancing in multi-tenant systems |
CN104079630A (zh) * | 2014-06-09 | 2014-10-01 | 中国建设银行股份有限公司 | 一种业务服务端负载均衡方法、客户端、服务端以及系统 |
CN104168326A (zh) * | 2014-08-27 | 2014-11-26 | 福建星网视易信息系统有限公司 | 一种服务器均衡负载的方法及系统 |
CN104219325A (zh) * | 2014-09-23 | 2014-12-17 | 中国南方电网有限责任公司 | 一种soa负载均衡装置及应用该装置的路由算法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109726012A (zh) * | 2018-12-27 | 2019-05-07 | 湖南亚信软件有限公司 | 一种任务调度方法、装置及调度服务器 |
CN109726012B (zh) * | 2018-12-27 | 2023-05-09 | 湖南亚信软件有限公司 | 一种任务调度方法、装置及调度服务器 |
CN111556142A (zh) * | 2020-04-26 | 2020-08-18 | 天津中新智冠信息技术有限公司 | 服务调用方法、装置及系统 |
CN112202755A (zh) * | 2020-09-25 | 2021-01-08 | 浙江华创视讯科技有限公司 | 一种服务器分配方法、装置、设备及介质 |
CN112202755B (zh) * | 2020-09-25 | 2022-08-23 | 浙江华创视讯科技有限公司 | 一种服务器分配方法、装置、设备及介质 |
CN112416888A (zh) * | 2020-10-16 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 用于分布式文件系统的动态负载均衡方法及系统 |
CN112416888B (zh) * | 2020-10-16 | 2024-03-12 | 上海哔哩哔哩科技有限公司 | 用于分布式文件系统的动态负载均衡方法及系统 |
CN115426248A (zh) * | 2022-08-01 | 2022-12-02 | 中国人民银行数字货币研究所 | 服务管理方法、装置、设备及存储介质 |
CN115426248B (zh) * | 2022-08-01 | 2023-10-20 | 中国人民银行数字货币研究所 | 服务管理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107172214B (zh) | 2020-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107172214A (zh) | 一种具有负载均衡的服务节点发现方法及装置 | |
US8069224B2 (en) | Method, equipment and system for resource acquisition | |
US20130080509A1 (en) | Cloud computing access gateway and method for providing a user terminal access to a cloud provider | |
CN110417842A (zh) | 用于网关服务器的故障处理方法和装置 | |
CN113783922A (zh) | 负载均衡的方法、系统和装置 | |
CN105791344A (zh) | 灰度发布业务处理的方法、系统、负载均衡器及服务总线装置 | |
CN110234140B (zh) | 一种通信方法、装置、实体及存储介质 | |
CN113961312A (zh) | 目标服务的部署方法、装置和电子设备 | |
CN111246397B (zh) | 集群系统、服务访问方法、装置及服务器 | |
US20100332532A1 (en) | Distributed directory environment using clustered ldap servers | |
CN106933548A (zh) | 全局信息获取、处理及更新、方法、装置和系统 | |
CN110650209A (zh) | 实现负载均衡的方法和装置 | |
JP6779307B2 (ja) | ページ表示のための方法及び装置 | |
EP2517408A2 (en) | Fault tolerant and scalable load distribution of resources | |
WO2012114889A1 (ja) | アプリケーション構築配置システム、アプリケーション構築配置方法、およびプログラム | |
CN113079098B (zh) | 路由更新的方法、装置、设备和计算机可读介质 | |
Rotter et al. | Telecom strategies for service discovery in microservice environments | |
CN109451090B (zh) | 一种域名解析方法及装置 | |
CN105229990B (zh) | 加载网页的方法和装置 | |
CN115826845A (zh) | 存储资源的分配方法和装置、存储介质、电子装置 | |
CA2986758C (en) | Systems and methods for server failover and load balancing | |
CN109495591A (zh) | 访问服务方法、装置及系统 | |
CN111464574A (zh) | 调用、加载、注册、管理方法和路由、服务器、节点和介质 | |
CN108733805A (zh) | 文件交互方法、系统、计算机设备和存储介质 | |
CN114785781B (zh) | 数据访问方法及装置 |
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 | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20170915 Assignee: GUANGZHOU CUBESILI INFORMATION TECHNOLOGY Co.,Ltd. Assignor: GUANGZHOU HUADUO NETWORK TECHNOLOGY Co.,Ltd. Contract record no.: X2021980000151 Denomination of invention: A service node discovery method and device with load balancing Granted publication date: 20200828 License type: Common License Record date: 20210107 |
|
EE01 | Entry into force of recordation of patent licensing contract |