CN110365723B - 非对称服务发现方法及设备 - Google Patents
非对称服务发现方法及设备 Download PDFInfo
- Publication number
- CN110365723B CN110365723B CN201810254235.1A CN201810254235A CN110365723B CN 110365723 B CN110365723 B CN 110365723B CN 201810254235 A CN201810254235 A CN 201810254235A CN 110365723 B CN110365723 B CN 110365723B
- Authority
- CN
- China
- Prior art keywords
- node
- service
- hash
- routing
- routing table
- 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
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- 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/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种非对称服务发现方法及设备,该方法包括:路由节点根据查询语句对应的查询内容所属的领域获取分组路由表,所述分组路由表中存储有属于同一组的服务节点的标识,属于同一组的服务节点提供同一领域的服务实例;所述路由节点根据所述分组路由表对应的哈希路由表和所述查询语句对应的哈希值,获取所述查询语句对应的目标服务节点,所述哈希路由表中存储有所述分组路由表中的各服务节点的哈希范围;所述路由节点根据所述目标服务节点,发现所述查询语句对应的服务实例,以快速准确的获取非对称服务节点。
Description
技术领域
本发明实施例涉及通信技术,尤其涉及一种非对称服务发现方法及设备。
背景技术
在基于云的微服务应用中,服务实例的网络地址是动态分配的,并且由于系统可以自动调整大小以及升级等因素,使得服务运行的实例数量也是动态变化的。因此,客户端需要使用一个非常精细和准确的服务发现机制,来获取服务实例。
在现有的服务发现机制中,一种发现机制为客户端发现机制。在具体实现过程中,在使用客户端发现方式时,客户端通过查询服务注册中心,获取可用的服务的实际网络地址(IP地址和端口号)。该网络地址可以提供多个服务节点,每个服务节点对应有服务实例,每个服务节点可以提供相同的数据。客户端可以通过负载均衡算法来选择可用的服务实例,并将请求发送至该服务。
然而,对于非对称服务而言,每个服务节点存储的数据不同,通过负载均衡算法无法准确获取服务实例,因此,亟需一种应用到非对称服务发现方法。
发明内容
本发明实施例提供一种非对称服务发现方法及设备,以快速准确的获取非对称服务节点。
第一方面,本发明实施例提供一种非对称服务发现方法,其特征在于,包括:
路由节点根据查询语句对应的查询内容所属的领域获取分组路由表,所述分组路由表中存储有属于同一组的服务节点的标识,属于同一组的服务节点提供同一领域的服务实例;
所述路由节点根据所述分组路由表对应的哈希路由表和所述查询语句对应的哈希值,获取所述查询语句对应的目标服务节点,所述哈希路由表中存储有所述分组路由表中的各服务节点的哈希范围;
所述路由节点根据所述目标服务节点,发现所述查询语句对应的服务实例。
在一种可能的设计中,所述路由节点根据所述分组路由表对应的哈希路由表和所述查询语句对应的哈希值,获取所述查询语句对应的目标服务节点,包括:
所述路由节点根据所述查询语句对应的哈希值,在所述分组路由表对应的哈希路由表中,确定包含所述哈希值的目标哈希范围;
所述路由节点将所述目标哈希范围对应的服务节点作为所述目标服务节点。
在一种可能的设计中,若所述目标服务节点的数量为至少两个,所述路由节点根据所述目标服务节点,发现所述查询语句对应的服务实例,包括:
所述路由节点根据负载均衡算法,在所述至少两个目标服务节点中确定待访问的目标服务节点;
所述路由节点向所述待访问的目标节点发送访问请求,以发现所述查询语句对应的服务实例。
在一种可能的设计中,所述路由节点根据查询语句对应的服务实例所属的组获取分组路由表之前,还包括:
所述路由节点向所述注册节点发送信息请求;
所述路由节点接收所述注册节点发送的节点信息表,其中,所述节点信息表中存储属于同一组的服务节点各自对应的哈希范围;
所述路由节点根据属于同一组的服务节点生成所述分组路由表,并根据属于同一组的服务节点各自对应的哈希范围生成哈希路由表。
第二方面,本发明实施例提供一种非对称服务发现方法,包括:
注册节点获取服务节点的心跳报文,所述心跳报文包括所述服务节点的哈希范围和所述服务节点提供的服务实例所属的领域;
所述注册节点根据各所述服务节点的心跳报文,确定节点信息表,其中,所述节点信息表中存储属于同一组的服务节点各自对应的哈希范围,且属于同一组的服务节点提供同一领域的服务实例;
所述注册节点根据从路由节点接收的信息请求,向所述路由节点发送所述节点信息表,以使所述路由节点根据所述节点信息表生成路由表。
在一种可能的设计中,所述注册节点获取所述服务节点的心跳报文,包括:
所述注册节点获取管理节点发送的注册信息,所述注册信息包括所述服务节点的心跳报文;其中,所述管理节点在接收到服务节点发送的心跳报文后,根据所述服务节点提供的服务实例所属的领域和所述注册节点所对应的领域确定待注册的注册节点,所述注册节点所对应的领域包括所述服务节点提供的服务实例所属的领域。
第三方面,本发明实施例提供一种路由节点,包括:
分组获取模块,用于根据查询语句对应的查询内容所属的领域获取分组路由表,所述分组路由表中存储有属于同一组的服务节点的标识,属于同一组的服务节点提供同一领域的服务实例;
节点获取模块,用于根据所述分组路由表对应的哈希路由表和所述查询语句对应的哈希值,获取所述查询语句对应的目标服务节点,所述哈希路由表中存储有所述分组路由表中的各服务节点的哈希范围;
发现模块,用于根据所述目标服务节点,发现所述查询语句对应的服务实例。
在一种可能的设计中,所述节点获取模块,具体用于:
根据所述查询语句对应的哈希值,在所述分组路由表对应的哈希路由表中,确定包含所述哈希值的目标哈希范围;
将所述目标哈希范围对应的服务节点作为所述目标服务节点。
在一种可能的设计中,若所述目标服务节点的数量为至少两个,所述发现模块具体用于:
根据负载均衡算法,在所述至少两个目标服务节点中确定待访问的目标服务节点;
向所述待访问的目标节点发送访问请求,以发现所述查询语句对应的服务实例。
在一种可能的设计中,还包括:
生成模块,用于在所述路由节点根据查询语句对应的服务实例所属的组获取分组路由表之前,向所述注册节点发送信息请求;
接收所述注册节点发送的节点信息表,其中,所述节点信息表中存储属于同一组的服务节点各自对应的哈希范围;
根据属于同一组的服务节点生成所述分组路由表,并根据属于同一组的服务节点各自对应的哈希范围生成哈希路由表。
第四方面,本发明实施例提供一种注册节点,包括:
获取模块,用于注册节点获取服务节点的心跳报文,所述心跳报文包括所述服务节点的哈希范围和所述服务节点提供的服务实例所属的领域;
确定模块,用于根据各所述服务节点的心跳报文,确定节点信息表,其中,所述节点信息表中存储属于同一组的服务节点各自对应的哈希范围,且属于同一组的服务节点提供同一领域的服务实例;
发送模块,用于根据从路由节点接收的信息请求,向所述路由节点发送所述节点信息表,以使所述路由节点根据所述节点信息表生成路由表。
在一种可能的设计中,所述获取模块具体用于:
获取管理节点发送的注册信息,所述注册信息包括所述服务节点的心跳报文;其中,所述管理节点在接收到服务节点发送的心跳报文后,根据所述服务节点提供的服务实例所属的领域和所述注册节点所对应的领域确定待注册的注册节点,所述注册节点所对应的领域包括所述服务节点提供的服务实例所属的领域。
第五方面,本发明实施例提供一种路由节点,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面的各种可能的设计所述的非对称服务发现方法。
第六方面,本发明实施例提供一种注册节点,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第二方面以及第二方面的各种可能的设计所述的非对称服务发现方法。
第七方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如第一方面以及第一方面的各种可能的设计所述的非对称服务发现方法。
第八方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第二方面以及第二方面的各种可能的设计所述的非对称服务发现方法。
本实施例提供的非对称服务的发现方法及设备,路由节点通过根据查询语句对应的查询内容所属的领域获取分组路由表,根据分组路由表对应的哈希路由表和查询语句对应的哈希值,获取查询语句对应的目标服务节点,根据目标服务节点,发现查询语句对应的服务实例,从而通过领域分组和哈希范围,可以快速精准的定位到非对称的服务节点,实现了统一所有非对称应用的服务发现方式,解决了多集群应用的服务发现方式。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的非对称服务发现系统;
图2为本发明实施例提供的非对称服务发现方法的信令流程图一;
图3为本发明实施例提供的非对称服务发现方法的信令流程图二;
图4为本发明实施例提供的非对称服务发现方法的流程示意图;
图5为本发明实施例提供的服务发现的示意图;
图6为本发明实施例提供的路由节点的结构示意图;
图7为本发明实施例提供的注册节点的结构示意图;
图8为本发明实施例提供的路由节点的硬件结构示意图;
图9为本发明实施例提供的注册节点的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的非对称服务发现系统。如图1所示,该系统包括:管理节点、注册节点、路由节点以及多个服务节点,例如服务节点A、服务节点B……服务节点E、服务节点F。其中,每个服务节点中存储的数据不同,因此,上述的服务节点A-B可称为非对称服务节点。每个服务节点上都承载有服务实例,可以为客户端提供服务实例。
在服务实例启动的时候,服务实例通过管理节点向注册节点注册服务;在服务实例停止服务时,通过管理节点向注册节点注销服务。本领域技术人员可以理解,该服务实例的注册和注销时通过服务节点来实现的。同时,该管理节点和注册节点也可以为同一个节点,即服务节点可以直接向注册节点注册服务或注销服务。
路由节点从注册节点定时获取被注册的服务实例的路由信息,然后根据该路由信息发现查询语句对应的服务实例。
为了适用于非对称服务,本实施例对每个服务节点所提供的服务实例按照领域进行分组,并根据每个服务节点对应的哈希范围来存储数据,从而形成二级路由表,以解决非对称服务中无法准确获取服务实例的问题。下面结合图1所示的系统,采用详细的实施例进行说明。
图2为本发明实施例提供的非对称服务发现方法的信令流程图一。如图2所示,该方法包括:
S201、服务节点向注册节点发送心跳报文,心跳报文包括服务节点的哈希范围和服务节点提供的服务实例所属的领域。
先进行初始化设置,设置图1类似的系统,该系统包括N个非对称服务节点,1个路由节点(服务发现客户端),1个注册节点。
在本实施例中,非对称服务节点是指节点中存储的数据是不一样的。在本实施例中所涉及的服务节点,均为非对称服务节点。
在向服务节点中存储数据时,可以事先对服务节点进行分组,其中,分组是根据每个服务节点所提供的服务实例所属的领域来划分的。属于同一组的服务节点所提供的服务实例的领域相同。具体地,可以根据行业对服务实例所属的领域进行划分,例如汽车领域、旅游领域等。本实施例对服务实例所属领域的具体划分方式不做特别限制。
然后,基于待存储的数据所属的领域来查找对应的分组,得到组内的服务节点所提供的服务实例的领域与该待存储的数据所属的领域相同的服务节点组。接着对该待存储的数据进行哈希处理,得到该待存储数据的哈希值,然后根据该服务节点组中的每个服务节点的哈希范围和待存储数据的哈希值,将待存储的数据存储到哈希范围包含该哈希值的服务节点中。
在完成数据的存储后,每个服务节点会向注册节点发送心跳报文,该心跳报文中可以携带服务节点的哈希范围和服务节点提供的服务实例所属的领域,从而对该服务节点所提供的服务实例进行注册。
S202、注册节点根据各服务节点的心跳报文,确定节点信息表,其中,节点信息表中存储属于同一组的服务节点各自对应的哈希范围。
注册节点在获取到各服务节点的心跳报文后,建立节点信息表。本领域技术人员可以理解,注册节点维护了多个节点信息表,每个节点信息表用于存储有一个领域的多个服务节点的标识以及每个服务节点各自对应的哈希范围。
当注册节点获取到服务节点的心跳报文后,可以根据服务节点的哈希范围和服务节点提供的服务实例所属的领域,新建或更新节点信息表。
S203、路由节点向注册节点发送信息请求。
S204、注册节点根据从路由节点接收的信息请求,向路由节点发送节点信息表。
路由节点会从注册节点查询所需要分组的所有节点信息。具体地,路由节点会向注册节点发送信息请求,注册节点在接收到该信息请求后,向路由节点发送该节点信息表。例如,路由节点会周期性的向注册节点发送信息请求,为保证时效性,该周期例如为2秒。
S205、路由节点根据属于同一组的服务节点生成分组路由表,并根据属于同一组的服务节点各自对应的哈希范围生成哈希路由表。
路由节点在获取到节点信息表之后,根据该节点信息表可以生成二级路由表。其中,一级路由是基于分组信息划分的,即根据属于同一组的服务节点生成分组路由表;二级路由是基于哈希范围来进行划分的,即根据属于同一组的服务节点各自对应的哈希范围生成哈希路由表,该哈希路由表中还不仅存储有哈希范围,还可以存储服务节点的地址。
在查询时,路由节点会根据查询语句(query)进行分组识别,定位到路由表的节点信息表;然后根据该查询语句的键值进行计算来获取哈希值,并根据该哈希值来查询包含该值的所有服务节点;最后对选中的所有服务节点进行负载均衡策略的定位,最终找到满足条件的非对称服务节点,完成查询分配策略。
在本实施例中,通过注册节点获取各服务节点的分组信息和哈希范围,生成节点信息表,路由节点周期性的获取该节点信息表并对包括分组路由表和哈希路由表的二级路由表进行更新,使得通过二级路由表就可以快速找到满足条件的非对称服务节点,从而可以快速准确的获取服务实例。
图3为本发明实施例提供的非对称服务发现方法的信令流程图二。如图3所示,该方法包括:
S301、服务节点向管理节点发送心跳报文,心跳报文包括服务节点的哈希范围和服务节点提供的服务实例所属的组;
S302、管理节点根据服务节点提供的服务实例所属的领域和注册节点所对应的领域确定待注册的注册节点,注册节点所对应的领域包括服务节点提供的服务实例所属的领域;
S303、管理节点向注册节点发送注册信息,注册信息包括服务节点的心跳报文;
S304、注册节点根据各服务节点的心跳报文,建立节点信息表,其中,节点信息表中存储属于同一组的服务节点各自对应的哈希范围;
S305、路由节点向注册节点发送信息请求;
S306、注册节点根据从路由节点接收的信息请求,向路由节点发送节点信息表。
S307、路由节点根据属于同一组的服务节点生成分组路由表,并根据属于同一组的服务节点各自对应的哈希范围生成哈希路由表。
其中,S304至S307与图2实施例中的S202至S205类似,本实施例此处不再赘述。
本实施例所采用的系统如图1所示,本实施例在图2所示实施例的基础上,增加了管理节点。
服务节点在确定心跳报文后,将该心跳报文发送给管理节点,由管理节点根据该服务节点提供的服务实例所属的领域,将该服务节点注册到对应的注册节点。其中,服务节点确定心跳报文的实现方式可参见图2实施例,本实施例此处不再赘述。
具体地,管理节点可以管理多个注册节点,每个注册节点所维护的服务实例的注册可以相同也可以不同。例如,注册节点N1能够注册的领域为领域A、领域B以及领域C;注册节点N2能够注册的领域为领域C、领域D以及领域E。
由于一个注册节点不能囊括所有的领域,所以由管理节点在接收到服务节点发送的心跳报文后,管理节点根据服务节点提供的服务实例所属的领域和注册节点所对应的领域确定待注册的注册节点,该注册节点所对应的领域包括服务节点提供的服务实例所属的领域。例如,服务节点提供的服务实例所属的领域为B,则管理节点将该服务节点注册到注册节点N1,即将该服务节点的心跳报文发送给注册节点N1。
本实施例通过增加管理节点,由管理节点根据服务节点提供的服务实例所属的领域和注册节点所对应的领域确定待注册的注册节点,可以适用于大规模的系统,即为大规模的微服务系统提供了技术支撑。
下面采用具体的实施例来说明如何根据查询语句来获取服务实例。
图4为本发明实施例提供的非对称服务发现方法的流程示意图。如图4所示,该方法包括:
S401、路由节点根据查询语句对应的查询内容所属的领域获取分组路由表,所述分组路由表中存储有属于同一组的服务节点的标识,属于同一组的服务节点提供同一领域的服务实例。
在获取到查询语句后,获取该查询语句对应的查询内容所属的领域。由于分组路由表中存储有属于同一组的服务节点的标识,且属于同一组的服务节点提供同一领域的服务实例。因此,根据该分组路由表所对应的领域,获取该查询内容所对应的分组路由表,即该查询内容与分组路由表所对应的领域相同。
S402、所述路由节点根据所述分组路由表对应的哈希路由表和所述查询语句对应的哈希值,获取所述查询语句对应的目标服务节点,所述哈希路由表中存储有所述分组路由表中的各服务节点的哈希范围。
具体地,根据查询语句对应的哈希值,在该分组路由表对应的哈希路由表中,确定包含该哈希值的目标哈希范围。将目标哈希范围对应的服务节点作为目标服务节点。
S403、所述路由节点根据所述目标服务节点,发现所述查询语句对应的服务实例。
在得到服务节点后,路由节点可以根据该目标服务节点的地址,访问该目标服务节点,以获取该查询语句对应的服务实例。
结合图5以一个具体的例子为例进行说明,其中,图5为本发明实施例提供的服务发现的示意图。如图5所示,服务节点A至服务节点F为非对称服务节点。服务节点A、服务节点B以及服务节点C属于组1,服务节点D、服务节点E、服务节点F属于组2。
本实施例的查询语句(query)对应的组为组2,哈希值为50000。路由节点根据query查找组2的哈希值为50000的数据,成功定位到组2的分片哈希范围40001-65535的服务节点F。由此,该服务节点F即为目标服务节点,可以提供满足条件的服务实例。
进一步地,若得到满足条件的目标服务节点为两个,则路由节点根据负载均衡算法,在至少两个目标服务节点中确定待访问的目标服务节点;路由节点向待访问的目标节点发送访问请求,以发现查询语句对应的服务实例。
本实施例路由节点通过根据查询语句对应的查询内容所属的领域获取分组路由表,根据分组路由表对应的哈希路由表和查询语句对应的哈希值,获取查询语句对应的目标服务节点,根据目标服务节点,发现查询语句对应的服务实例,从而通过领域分组和哈希范围,可以快速精准的定位到非对称的服务节点,实现了统一所有非对称应用的服务发现方式,解决了多集群应用的服务发现方式。
图6为本发明实施例提供的路由节点的结构示意图。如图6所示,该路由节点60包括:分组获取模块601、节点获取模块602以及发现模块603。可选地,还包括:生成模块604。
分组获取模块601,用于根据查询语句对应的查询内容所属的领域获取分组路由表,所述分组路由表中存储有属于同一组的服务节点的标识,属于同一组的服务节点提供同一领域的服务实例;
节点获取模块602,用于根据所述分组路由表对应的哈希路由表和所述查询语句对应的哈希值,获取所述查询语句对应的目标服务节点,所述哈希路由表中存储有所述分组路由表中的各服务节点的哈希范围;
发现模块603,用于根据所述目标服务节点,发现所述查询语句对应的服务实例。
可选地,所述节点获取模块602,具体用于:
根据所述查询语句对应的哈希值,在所述分组路由表对应的哈希路由表中,确定包含所述哈希值的目标哈希范围;
将所述目标哈希范围对应的服务节点作为所述目标服务节点。
可选地,若所述目标服务节点的数量为至少两个,所述发现模块603具体用于:
根据负载均衡算法,在所述至少两个目标服务节点中确定待访问的目标服务节点;
向所述待访问的目标节点发送访问请求,以发现所述查询语句对应的服务实例。
可选地,生成模块604,用于在所述路由节点根据查询语句对应的服务实例所属的组获取分组路由表之前,向所述注册节点发送信息请求;
接收所述注册节点发送的节点信息表,其中,所述节点信息表中存储属于同一组的服务节点各自对应的哈希范围;
根据属于同一组的服务节点生成所述分组路由表,并根据属于同一组的服务节点各自对应的哈希范围生成哈希路由表。
本实施例提供的路由节点,可以实现上述方法实施例中路由节点所执行的方法,其实现原理和技术效果类似,本实施例此处不再赘述。
图7为本发明实施例提供的注册节点的结构示意图。如图7所示,该注册节点70包括:获取模块701、确定模块702以及发送模块703。
获取模块701,用于注册节点获取服务节点的心跳报文,所述心跳报文包括所述服务节点的哈希范围和所述服务节点提供的服务实例所属的领域;
确定模块702,用于根据各所述服务节点的心跳报文,确定节点信息表,其中,所述节点信息表中存储属于同一组的服务节点各自对应的哈希范围,且属于同一组的服务节点提供同一领域的服务实例;
发送模块703,用于根据从路由节点接收的信息请求,向所述路由节点发送所述节点信息表,以使所述路由节点根据所述节点信息表生成路由表。
可选地,所述获取模块701具体用于:
获取管理节点发送的注册信息,所述注册信息包括所述服务节点的心跳报文;其中,所述管理节点在接收到服务节点发送的心跳报文后,根据所述服务节点提供的服务实例所属的领域和所述注册节点所对应的领域确定待注册的注册节点,所述注册节点所对应的领域包括所述服务节点提供的服务实例所属的领域。
本实施例提供的注册节点,可以实现上述方法实施例中注册节点所执行的方法,其实现原理和技术效果类似,本实施例此处不再赘述。
图8为本发明实施例提供的路由节点的硬件结构示意图。如图8所示,本实施例提供的路由节点80包括:至少一个处理器801和存储器802。该路由节点80还包括通信部件803。其中,处理器801、存储器802以及通信部件803通过总线804连接。
在具体实现过程中,至少一个处理器801执行所述存储器802存储的计算机执行指令,使得至少一个处理器801执行如上路由节点所执行的非对称服务发现方法。其实现原理和技术效果类似,本实施例此处不再赘述。
图9为本发明实施例提供的注册节点的硬件结构示意图。如图9所示,本实施例提供的注册节点90包括:至少一个处理器901和存储器902。该注册节点90还包括通信部件903。其中,处理器901、存储器902以及通信部件903通过总线904连接。
在具体实现过程中,至少一个处理器901执行所述存储器902存储的计算机执行指令,使得至少一个处理器901执行如上注册节点所执行的非对称服务发现方法。其实现原理和技术效果类似,本实施例此处不再赘述。
在上述的实施例中,在上述注册节点或者路由节点的实施例中,应理解,处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上路由节点所执行的非对称服务发现方法。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上注册节点所执行的非对称服务发现方法。
上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,简称:ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于注册节点或路由节点中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (16)
1.一种非对称服务发现方法,其特征在于,包括:
路由节点根据查询语句对应的查询内容所属的领域获取分组路由表,所述分组路由表中存储有属于同一组的服务节点的标识,属于同一组的服务节点提供同一领域的服务实例;
所述路由节点根据所述分组路由表对应的哈希路由表和所述查询语句对应的哈希值,获取所述查询语句对应的目标服务节点,所述哈希路由表中存储有所述分组路由表中的各服务节点的哈希范围;
所述路由节点根据所述目标服务节点,发现所述查询语句对应的服务实例;
其中,所述分组路由表由所述路由节点根据属于同一组的服务节点生成,所述哈希路由表由所述路由节点根据属于同一组的服务节点各自对应的哈希范围生成。
2.根据权利要求1所述的方法,其特征在于,所述路由节点根据所述分组路由表对应的哈希路由表和所述查询语句对应的哈希值,获取所述查询语句对应的目标服务节点,包括:
所述路由节点根据所述查询语句对应的哈希值,在所述分组路由表对应的哈希路由表中,确定包含所述哈希值的目标哈希范围;
所述路由节点将所述目标哈希范围对应的服务节点作为所述目标服务节点。
3.根据权利要求2所述的方法,其特征在于,若所述目标服务节点的数量为至少两个,所述路由节点根据所述目标服务节点,发现所述查询语句对应的服务实例,包括:
所述路由节点根据负载均衡算法,在所述至少两个目标服务节点中确定待访问的目标服务节点;
所述路由节点向所述待访问的目标节点发送访问请求,以发现所述查询语句对应的服务实例。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述路由节点根据查询语句对应的服务实例所属的组获取分组路由表之前,还包括:
所述路由节点向注册节点发送信息请求;
所述路由节点接收所述注册节点发送的节点信息表,其中,所述节点信息表中存储属于同一组的服务节点各自对应的哈希范围。
5.一种非对称服务发现方法,其特征在于,包括:
注册节点获取服务节点的心跳报文,所述心跳报文包括所述服务节点的哈希范围和所述服务节点提供的服务实例所属的领域;
所述注册节点根据各所述服务节点的心跳报文,确定节点信息表,其中,所述节点信息表中存储属于同一组的服务节点各自对应的哈希范围,且属于同一组的服务节点提供同一领域的服务实例;
所述注册节点根据从路由节点接收的信息请求,向所述路由节点发送所述节点信息表,以使所述路由节点根据所述节点信息表生成路由表;
其中,所述路由节点根据属于同一组的服务节点生成分组路由表,并根据属于同一组的服务节点各自对应的哈希范围生成哈希路由表,以根据查询语句对应的查询内容所属的领域获取所述分组路由表,根据所述分组路由表对应的哈希路由表和所述查询语句对应的哈希值,获取所述查询语句对应的目标服务节点,并根据所述目标服务节点,发现所述查询语句对应的服务实例。
6.根据权利要求5所述的方法,其特征在于,所述注册节点获取服务节点的心跳报文,包括:
所述注册节点获取管理节点发送的注册信息,所述注册信息包括所述服务节点的心跳报文;其中,所述管理节点在接收到服务节点发送的心跳报文后,根据所述服务节点提供的服务实例所属的领域和所述注册节点所对应的领域确定待注册的注册节点,所述注册节点所对应的领域包括所述服务节点提供的服务实例所属的领域。
7.一种路由节点,其特征在于,包括:
分组获取模块,用于根据查询语句对应的查询内容所属的领域获取分组路由表,所述分组路由表中存储有属于同一组的服务节点的标识,属于同一组的服务节点提供同一领域的服务实例;
节点获取模块,用于根据所述分组路由表对应的哈希路由表和所述查询语句对应的哈希值,获取所述查询语句对应的目标服务节点,所述哈希路由表中存储有所述分组路由表中的各服务节点的哈希范围;
发现模块,用于根据所述目标服务节点,发现所述查询语句对应的服务实例;
其中,所述分组路由表由所述路由节点根据属于同一组的服务节点生成,所述哈希路由表由所述路由节点根据属于同一组的服务节点各自对应的哈希范围生成。
8.根据权利要求7所述的节点,其特征在于,所述节点获取模块,具体用于:
根据所述查询语句对应的哈希值,在所述分组路由表对应的哈希路由表中,确定包含所述哈希值的目标哈希范围;
将所述目标哈希范围对应的服务节点作为所述目标服务节点。
9.根据权利要求8所述的节点,其特征在于,若所述目标服务节点的数量为至少两个,所述发现模块具体用于:
根据负载均衡算法,在所述至少两个目标服务节点中确定待访问的目标服务节点;
向所述待访问的目标节点发送访问请求,以发现所述查询语句对应的服务实例。
10.根据权利要求7至9任一项所述的节点,其特征在于,还包括:
生成模块,用于在所述路由节点根据查询语句对应的服务实例所属的组获取分组路由表之前,向注册节点发送信息请求;
接收所述注册节点发送的节点信息表,其中,所述节点信息表中存储属于同一组的服务节点各自对应的哈希范围;
根据属于同一组的服务节点生成所述分组路由表,并根据属于同一组的服务节点各自对应的哈希范围生成哈希路由表。
11.一种注册节点,其特征在于,包括:
获取模块,用于注册节点获取服务节点的心跳报文,所述心跳报文包括所述服务节点的哈希范围和所述服务节点提供的服务实例所属的领域;
确定模块,用于根据各所述服务节点的心跳报文,确定节点信息表,其中,所述节点信息表中存储属于同一组的服务节点各自对应的哈希范围,且属于同一组的服务节点提供同一领域的服务实例;
发送模块,用于根据从路由节点接收的信息请求,向所述路由节点发送所述节点信息表,以使所述路由节点根据所述节点信息表生成路由表;
其中,所述路由节点根据属于同一组的服务节点生成分组路由表,并根据属于同一组的服务节点各自对应的哈希范围生成哈希路由表,以根据查询语句对应的查询内容所属的领域获取所述分组路由表,根据所述分组路由表对应的哈希路由表和所述查询语句对应的哈希值,获取所述查询语句对应的目标服务节点,并根据所述目标服务节点,发现所述查询语句对应的服务实例。
12.根据权利要求11所述的节点,其特征在于,所述获取模块具体用于:
获取管理节点发送的注册信息,所述注册信息包括所述服务节点的心跳报文;其中,所述管理节点在接收到服务节点发送的心跳报文后,根据所述服务节点提供的服务实例所属的领域和所述注册节点所对应的领域确定待注册的注册节点,所述注册节点所对应的领域包括所述服务节点提供的服务实例所属的领域。
13.一种路由节点,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至4任一项所述的非对称服务发现方法。
14.一种注册节点,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求5或6所述的非对称服务发现方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至4任一项所述的非对称服务发现方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求5或6所述的非对称服务发现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810254235.1A CN110365723B (zh) | 2018-03-26 | 2018-03-26 | 非对称服务发现方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810254235.1A CN110365723B (zh) | 2018-03-26 | 2018-03-26 | 非对称服务发现方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110365723A CN110365723A (zh) | 2019-10-22 |
CN110365723B true CN110365723B (zh) | 2022-02-11 |
Family
ID=68212947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810254235.1A Active CN110365723B (zh) | 2018-03-26 | 2018-03-26 | 非对称服务发现方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110365723B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11973823B1 (en) * | 2023-01-11 | 2024-04-30 | Dell Products L.P. | Offloading namespace redirection to backup clients in a scale out cluster |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102427427A (zh) * | 2011-12-06 | 2012-04-25 | 中国科学院计算机网络信息中心 | 在哈希网络中查询解析服务器的方法及索引服务器 |
CN104408174A (zh) * | 2014-12-12 | 2015-03-11 | 用友软件股份有限公司 | 数据库路由装置和方法 |
CN104506515A (zh) * | 2014-12-17 | 2015-04-08 | 北京极科极客科技有限公司 | 一种固件的保护方法和保护装置 |
CN106202441A (zh) * | 2016-07-13 | 2016-12-07 | 腾讯科技(深圳)有限公司 | 基于关系型数据库的数据处理方法、装置和系统 |
CN106533940A (zh) * | 2016-10-25 | 2017-03-22 | 上海斐讯数据通信技术有限公司 | 一种基于sdn的等价路由哈希选路方法、装置和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201251376A (en) * | 2011-06-09 | 2012-12-16 | Ind Tech Res Inst | Method and device for distribution of nodes, and computer program products thereof |
-
2018
- 2018-03-26 CN CN201810254235.1A patent/CN110365723B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102427427A (zh) * | 2011-12-06 | 2012-04-25 | 中国科学院计算机网络信息中心 | 在哈希网络中查询解析服务器的方法及索引服务器 |
CN104408174A (zh) * | 2014-12-12 | 2015-03-11 | 用友软件股份有限公司 | 数据库路由装置和方法 |
CN104506515A (zh) * | 2014-12-17 | 2015-04-08 | 北京极科极客科技有限公司 | 一种固件的保护方法和保护装置 |
CN106202441A (zh) * | 2016-07-13 | 2016-12-07 | 腾讯科技(深圳)有限公司 | 基于关系型数据库的数据处理方法、装置和系统 |
CN106533940A (zh) * | 2016-10-25 | 2017-03-22 | 上海斐讯数据通信技术有限公司 | 一种基于sdn的等价路由哈希选路方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110365723A (zh) | 2019-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2016280163B2 (en) | Managing dynamic IP address assignments | |
CN107105061B (zh) | 一种服务注册方法及装置 | |
WO2019165665A1 (zh) | 一种域名解析方法、服务器及系统 | |
CN112039942A (zh) | 一种订阅发布方法及服务器 | |
EP3962002B1 (en) | Communication optimization systems of blockchain network, registration methods and message forwarding methods | |
CN111182089B (zh) | 容器集群系统和访问大数据组件的方法、装置及服务器 | |
WO2017185961A1 (zh) | 一种服务发现的处理方法及装置 | |
CN114025021B (zh) | 一种跨Kubernetes集群的通信方法、系统、介质和电子设备 | |
WO2019042186A1 (zh) | 一种网络管理方法及相关设备 | |
WO2020259608A1 (zh) | Cdn功能模块运行方法、运行装置、电子设备及存储介质 | |
CN105224609A (zh) | 一种索引查询方法及装置 | |
CN107105013B (zh) | 文件的处理方法、服务器、终端和系统 | |
EP3319270B1 (en) | Service registration method, usage method and relevant apparatus | |
CN110677347B (zh) | 一种用于微服务的服务注册和服务发现的方法 | |
US10715628B2 (en) | Attribute operating method and device | |
WO2021136634A1 (en) | Association with a network data analytics function | |
CN111031129B (zh) | 访问请求处理方法、处理装置、电子设备及存储介质 | |
KR20110063328A (ko) | 물리적 인터페이스 질의 및 선택을 갖는 원격 프로지져 로출(rpc) 바인드 서비스 | |
US10205545B2 (en) | Resource creation method and apparatus | |
CN110365723B (zh) | 非对称服务发现方法及设备 | |
CN110955460B (zh) | 一种服务进程启动方法、装置、电子设备和存储介质 | |
CN114363233A (zh) | 一种分组路由方法、装置、电子设备及存储介质 | |
US10216771B2 (en) | Creating and handling identification for a resource in a configuration database | |
US20210042328A1 (en) | Partitioning data in a clustered database environment | |
CN113037630B (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200417 Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Applicant after: Alibaba (China) Co.,Ltd. Address before: 510627 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping square B radio tower 13 layer self unit 01 Applicant before: GUANGZHOU SHENMA MOBILE INFORMATION TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |