本申请属于通信领域,具体涉及一种路由确定方法、装置、电子设备及计算机可读存储介质。
背景技术:
一个功能完善的系统一般包括多种功能。其中,每种功能可以用一种微服务来表示,相应的,一个系统可以包括多种微服务。一般而言,一种微服务可以包括一个服务实例(进程);针对一些常用功能,同一种微服务也可以包括多个服务实例。若将每个服务实例视为一个节点,那么针对一个系统而言,则可以包括多个服务实例节点(也称之为服务节点)。
此外,针对一个系统,还可以包括多个api(applicationprogramminginterface,应用程序接口)网关。其中,多个api网关中的至少一个api网关用于与各个服务实例节点进行信息交互,称之为第一类api网关;多个api网关中的至少一个api网关用于与外部的其他系统进行信息交互,并称之为公共网关或第二类api网关。
在实际的应用场景中,通常将系统视为一个集群,且将多个集群通信连接,从而形成包括大量的服务实例节点以及网关节点的复杂网络环境。
在上述的复杂网络环境下,当属于集群a的服务实例节点a需要访问集群b的服务实例节点b时,服务实例节点a与服务实例节点b之间需要通过一系列的api网关节点进行交互,此时,对于api网关节点而言,需要根据路由信息,使得服务实例节点a与服务实例节点b之间信息可达。
在现有技术中,一般由后台工作人员根据各个节点之间的连接关系配置好路由信息,并下发给各个api网关节点,路由一旦被配置下发,则不可改变。
然而各个节点之间具有伸缩性,例如新增api网关节点或服务实例节点,再例如原有的api网关节点或服务实例节点被删除,一旦节点之间的连接关系发生变动,若依旧按照原有的路由信息对信息进行转发,可能导致节点之间的访问不可达。
技术实现要素:
有鉴于此,本申请的目的在于提供一种路由确定方法、装置、电子设备及计算机可读存储介质,在各个服务节点之间存在访问请求时,可以根据当前的实时网络拓扑数据计算路径并给相关的api网关节点下发路由信息,避免由于节点变动导致的访问不可达。
本申请的实施例是这样实现的:
第一方面,本申请实施例提供一种路由确定方法,应用于服务管理控制台,所述方法包括:当接收到api网关节点发送的服务节点之间的消费服务申请信息时,获取各节点属性及节点之间的连接关系,所述节点包括api网关节点及在各api网关节点注册的服务节点;根据各节点属性及节点之间的连接关系,更新保存在图数据库中的节点拓扑数据;根据所述节点拓扑数据、所述消费服务申请信息中包括的服务消费节点及服务提供节点,调用图计算引擎计算所述服务消费节点与所述服务提供节点之间的路径;根据所述路径生成路由信息,并将所述路由信息下发给所述路径中包括的api网关节点,以使所述服务消费节点根据所述路径中包括的api网关节点中保存的路由信息,完成对所述服务提供节点的访问。
在本实施例中,当服务节点之间存在访问需求,且需要确定路由信息时,服务管理控制台可以根据获取到的各节点属性及节点之间的连接关系确定出服务消费节点与服务提供节点之间的可达路径,以便服务管理控制台可以根据确定出的路径,计算当前可达的路由信息并下发给路径所需要经过的api网关节点,从而使得服务消费节点可以成功访问到服务提供节点。由于路由信息由服务管理控制台根据当前获取到的各节点属性及节点之间的连接关系即时计算,而不是采用现有技术中的静态配置路由,在此过程中,即使原有节点存在变更可能导致原有的路由信息对应的路径不可达,也可以根据当前获取到的各节点属性及节点之间的连接关系尽可能地计算出可达路径,从而避免由于节点变动导致的访问不可达。
结合第一方面实施例,在一种可能的实施方式中,所述获取各节点属性及节点之间的连接关系,包括:在确定获取到节点变更信息时,根据所述节点变更信息所包括的节点属性及连接关系,对前一次所保存的各节点属性及节点之间的连接关系进行更新,得到所述各节点属性及节点之间的连接关系;在确定未获取到节点变更信息时,将前一次所保存的各节点属性及节点之间的连接关系确定为所述各节点属性及节点之间的连接关系。即当存在节点变更信息时,可以根据节点变更信息对当前的各节点属性及节点之间的连接关系进行更新,以保证可以得到最新的节点属性以及最新的节点之间的连接关系,避免由于节点变动导致的访问不可达。
结合第一方面实施例,在一种可能的实施方式中,所述节点变更信息的生成由原有下线节点上线、原有在线节点下线、新增节点注册、删除原有节点中的至少一种触发。
结合第一方面实施例,在一种可能的实施方式中,在所述节点变更信息的生成由原有在线节点下线或删除原有节点而触发时,所述方法还包括:删除前一次已下发的路由信息中,与下线的原有节点以及被删除的原有节点存在关联的路由信息。也就是说,当存在下线节点或被删除的节点时,与下线或被删除节点相关的路由信息可能会导致访问不可达,此时,需要将与下线或被删除节点相关的路由信息删除,避免后续的访问不可达。
结合第一方面实施例,在一种可能的实施方式中,所述计算所述服务消费节点与所述服务提供节点之间的路径,包括:计算所述服务消费节点与所述服务提供节点之间的可达路径、最短路径或最佳路径中的至少一种路径。
第二方面,本申请实施例提供一种路由确定方法,应用于api网关节点,所述方法包括:当注册的任一服务节点发起服务节点之间的消费服务申请信息时,将所述消费服务申请信息发送给服务管理控制台,以使所述服务管理控制台调用图计算引擎,根据保存在图数据库中的节点拓扑数据、所述消费服务申请信息所包括的服务消费节点及服务提供节点,计算所述服务消费节点与所述服务提供节点之间的路径;接收所述服务管理控制台根据所述路径生成的路由信息;根据所述路由信息执行服务节点之间的消费服务访问。
结合第二方面实施例,在一种可能的实施方式中,所述方法还包括:获取到与自身存在注册关系的服务节点的节点变动,所述节点变动包括原有在线服务节点下线、原有下线服务节点上线中的至少一种;根据所述节点变动生成节点变更信息;将所述节点变更信息发送给所述服务管理控制台,以使所述服务管理控制台根据所述节点变更信息,更新保存在图数据库中的节点拓扑数据。
第三方面,本申请实施例提供一种路由确定装置,应用于服务管理控制台,所述装置包括:获取模块、更新模块、计算模块以及下发模块。获取模块,用于当接收到api网关节点发送的服务节点之间的消费服务申请信息时,获取各节点属性及节点之间的连接关系,所述节点包括api网关节点及在各api网关节点注册的服务节点;更新模块,用于根据各节点属性及节点之间的连接关系,更新保存在图数据库中的节点拓扑数据;计算模块,用于根据所述节点拓扑数据、所述消费服务申请信息中包括的服务消费节点及服务提供节点,调用图计算引擎计算所述服务消费节点与所述服务提供节点之间的路径;下发模块,用于根据所述路径生成路由信息,并将所述路由信息下发给所述路径中包括的api网关节点,以使所述服务消费节点根据所述路径中包括的api网关节点中保存的路由信息,完成对所述服务提供节点的访问。
结合第三方面实施例,在一种可能的实施方式中,所述获取模块,用于在确定获取到节点变更信息时,根据所述节点变更信息所包括的节点属性及连接关系,对前一次所保存的各节点属性及节点之间的连接关系进行更新,得到所述各节点属性及节点之间的连接关系;在确定未获取到节点变更信息时,将前一次所保存的各节点属性及节点之间的连接关系确定为所述各节点属性及节点之间的连接关系。
结合第三方面实施例,在一种可能的实施方式中,所述节点变更信息的生成由原有下线节点上线、原有在线节点下线、新增节点注册、删除原有节点中的至少一种触发。
结合第三方面实施例,在一种可能的实施方式中,所述装置还包括删除模块,用于在所述节点变更信息的生成由原有在线节点下线或删除原有节点而触发时,删除前一次已下发的路由信息中,与下线的原有节点以及被删除的原有节点存在关联的路由信息。
结合第三方面实施例,在一种可能的实施方式中,所述计算模块,用于计算所述服务消费节点与所述服务提供节点之间的可达路径、最短路径或最佳路径中的至少一种路径。
第四方面,本申请实施例还提供一种路由确定装置,应用于api网关节点,所述装置包括:发送模块、接收模块以及访问模块。发送模块,用于当注册的任一服务节点发起服务节点之间的消费服务申请信息时,将所述消费服务申请信息发送给服务管理控制台,以使所述服务管理控制台调用图计算引擎,根据保存在图数据库中的节点拓扑数据、所述消费服务申请信息所包括的服务消费节点及服务提供节点,计算所述服务消费节点与所述服务提供节点之间的路径;接收模块,用于接收所述服务管理控制台根据所述路径生成的路由信息;访问模块,用于根据所述路由信息执行服务节点之间的消费服务访问。
结合第四方面实施例,在一种可能的实施方式中,所述装置还包括获取模块,用于获取到与自身存在注册关系的服务节点的节点变动,所述节点变动包括原有在线服务节点下线、原有下线服务节点上线中的至少一种;生成模块,用于根据所述节点变动生成节点变更信息;所述发送模块,还用于将所述节点变更信息发送给所述服务管理控制台,以使所述服务管理控制台根据所述节点变更信息,更新保存在图数据库中的节点拓扑数据。
第五方面,本申请实施例还提供一种电子设备,包括:存储器和处理器,所述存储器和所述处理器连接;所述存储器用于存储程序;所述处理器调用存储于所述存储器中的程序,以执行上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的方法。
第六方面,本申请实施例还提供一种非易失性计算机可读取存储介质(以下简称计算机可读存储介质),其上存储有计算机程序,所述计算机程序被计算机运行时执行上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的方法。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例而了解。本申请的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本申请的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本申请的主旨。
图1示出本申请实施例提供的一种路由确定方法的流程图之一。
图2示出本申请实施例提供的一种管理平台的结构示意图。
图3示出本申请实施例提供的一种节点之间的拓扑图。
图4示出本申请实施例提供的一种路由确定方法的流程图之二。
图5示出本申请实施例提供的一种路由确定装置的结构框图之一。
图6示出本申请实施例提供的一种路由确定装置的结构框图之二。
图7示出本申请实施例提供的一种电子设备的结构示意图。
图标:10-管理平台;11-服务管理控制台;12-注册中心;13-api网关;100-电子设备;110-处理器;120-存储器;400-路由确定装置;410-获取模块;420-更新模块;430-计算模块;440-下发模块;500-路由确定装置;510-发送模块;520-接收模块;530-访问模块。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中诸如“第一”、“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再者,本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。
此外,针对现有技术中的路由确定方案所存在的缺陷(在路由被静态配置的前提下,一旦原有节点之间的连接关系发生变动,原有的路由可能导致有些访问不可达)是申请人在经过实践并仔细研究后得出的结果,因此,上述缺陷的发现过程以及在下文中本申请实施例针对上述缺陷所提出的解决方案,都应该被认定为申请人对本申请做出的贡献。
为了解决上述问题,本申请实施例提供一种用于进行路由确定的技术,可以根据当前的实时网络拓扑计算路径并给相关的api网关节点下发路由信息,避免由于节点变动导致访问不可达。
该技术可采用相应的软件、硬件以及软硬结合的方式实现。以下对本申请实施例进行详细介绍。
首先,将针对本申请所提供的路由确定方法进行介绍。
请参阅图1,本申请实施例提供一种应用于管理平台的服务管理控制台的路由确定方法,包括以下步骤。
步骤s110:当接收到api网关节点发送的服务节点之间的消费服务申请信息时,获取各节点属性及节点之间的连接关系,所述节点包括api网关节点及在各api网关节点注册的服务节点。
步骤s120:根据各节点属性及节点之间的连接关系,更新保存在图数据库中的节点拓扑数据。
步骤s130:根据所述节点拓扑数据、所述消费服务申请信息中包括的服务消费节点及服务提供节点,调用图计算引擎计算所述服务消费节点与所述服务提供节点之间的路径。
步骤s140:根据所述路径生成路由信息,并将所述路由信息下发给所述路径中包括的api网关节点,以使所述服务消费节点根据所述路径中包括的api网关节点中保存的路由信息,完成对所述服务提供节点的访问。
其中,管理平台可以是上述背景技术中所提及到的复杂网络环境所包括的多个集群中的主集群,该主集群可以对其他的集群起到管理作用。
可选的,请参看图2,管理平台10可以包括服务管理控制台11、注册中心12、api网关13(即后文中所提及到的api网关节点)。
其中,主集群以及各个集群所包括的每个节点(可能是服务节点、api网关节点)在发生上线、下线等变化时,均需要通知与该节点连接的api网关节点。在本申请实施例中,各个集群内的api网关节点在感知到其他节点的变化后,将相关的节点变更信息通知给注册中心12。换言之,注册中心12可以感知到各个节点的变化。
此外,在服务管理控制台11的存储器内预先配置有图计算引擎以及图数据库。
图计算引擎是一种偏重于全局查询的技术,可以以批量的形式,对大规模数据进行优化。
图数据库是一种在线的图数据库管理系统,支持对图数据模型的增、删、改、查等操作。
在本申请实施例中,当各个集群形成复杂网络环境后,后台工作人员可以根据实际情况以及各个节点之间的逻辑关系,为各个节点之间配置节点属性以及连接关系,并将各个节点的节点属性以及各个节点之间的连接关系保存在图数据库内,为了便于区分,将第一次由后台工作人员进行配置所得到的节点属性以及连接关系称之为原始节点的节点属性以及原始节点之间的原始连接关系。
其中,一个节点的节点属性用于表征该节点所处的状态,例如某个节点的节点属性为上线或下线等。
值得指出的是,当两个节点之间存在连接时,说明这两个节点之间的信息彼此可达。
后续,可以根据预先被配置的各个节点的节点属性以及各个节点之间的连接关系,生成拓扑图(如图3所示)以及拓扑图中各个节点之间的节点拓扑数据。其中节点拓扑数据包括节点属性以及节点之间的连接关系。其中,存在连接关系的两个节点之间用线段进行连接,从而实现节点的可视化效果。
当然,拓扑图以及拓扑数据保存在图数据库中。
此外,图计算引擎可以根据预先被配置的各个节点的节点属性以及各个节点之间的连接关系,计算各个节点之间可用于通信的路径。
作为一种可选的实施方式,上述路径可以包括可达路径、最短路径或最佳路径中的至少一种。
当然,如何根据连接关系计算可达路径、最短路径或最佳路径均为比较成熟的现有技术,此处不再赘述。
在得到每条路径后,服务管理控制台11可以根据该路径,生成路由信息,并将路由信息下发给与该路径相关的api网关节点。
其中,在路由信息中,可以包括与路径对应的ip端口、服务信息、节点信息等。
下面将结合图1对其所包含的步骤进行说明。
步骤s110:当接收到api网关节点发送的服务节点之间的消费服务申请信息时,获取各节点属性及节点之间的连接关系,所述节点包括api网关节点及在各api网关节点注册的服务节点。
值得指出的是,在本申请实施例中,当多个集群相互连接,形成包括多个微服务的复杂网络环境后,该复杂网络环境即可以对外提供多种功能,且在其业务层面生成对应的服务目录,在该服务目录内记载有已完成注册的所有服务节点所对应的功能。
在一种实施方式中,该复杂网络环境可以提供一个界面,以展示自身当前可提供的功能,以便用户进行选择。当然,在界面中还可以展示各个功能的用途等信息,还可以提供用户进行查询的选项等。
此时,就用户当前选择功能的界面而言,是一个正在运行的进程,该进程所对应的服务节点对于整个复杂网络环境而言,其角色为一个服务消费节点;就用户所选中的功能所对应的进程所对应的服务节点而言,其角色为一个服务提供节点。
在本申请实施例中,当服务消费节点需要访问服务提供节点前,需要由服务消费节点生成服务节点之间的消费服务申请信息,并通过与服务消费节点对应的第一类api网关将该消费服务申请信息发送给服务管理控制台11。
在该消费服务申请信息中,携带有服务消费节点以及服务提供节点的相关信息,例如名称信息。
服务管理控制台11在当前周期内获取到消费服务申请信息后,即可确定出当前周期内的服务消费节点以及服务提供节点,然后服务管理控制台11可以获取当前存在的各节点的节点属性及各节点之间的连接关系,以便为计算服务消费节点与服务提供节点之间的路径做准备。
下面将针对服务管理控制台11获取各节点属性及节点之间的连接关系进行介绍。
在一些实施方式中,若服务管理控制台11在当前周期内未获取到节点变更信息,则意味着当前时刻的节点属性及节点之间的连接关系与前一周期的节点属性及节点之间的连接关系相同。此时,服务管理控制台11可以将前一次所保存的各节点属性及节点之间的连接关系确定为当前时刻的各节点属性及节点之间的连接关系。
在一些实施方式中,若服务管理控制台11在当前周期内获取到节点变更信息,则意味着当前时刻的节点属性及节点之间的连接关系相较于前一周期的节点属性及节点之间的连接关系存在差异。此时,服务管理控制台11可以对前一次所保存的各节点属性及节点之间的连接关系进行更新,得到当前时刻的各节点属性及节点之间的连接关系。
至于前一周期(假设当前周期为n,那么前一周期为n-1)所保存的各节点属性及节点之间的连接关系,可以根据上述两种实施方式(是否获取到节点变更信息这两种实施方式),针对前一周期的前一周期(n-2)所保存的各节点属性及节点之间的连接关系获取到,直至追溯到第一周期,由后台工作人员所配置得到的原始节点的节点属性以及原始节点之间的原始连接关系。
值得指出的是,上述所涉及到的一个周期,可以指代一个时间段,也可以指代一个瞬时时刻。一个周期具体所涉及到的时长,可由工作人员根据实际情况进行配置。
其中,节点变更信息的生成由原有下线节点上线、原有在线节点下线、新增节点注册、删除原有节点中的至少一种情况触发。
前文提及,在各个集群中,当原有在线节点下线、原有下线节点上线时,均需要通知节点自身所在集群内的与该节点通信连接的api网关节点。api网关节点会根据原有在线节点下线、原有下线节点上线生成节点变更信息,并将节点变更信息同步给注册中心12。其中,节点变更信息包括发生状态变动的节点的节点属性及发生状态变动的节点与其他节点的连接关系。
注册中心12可以在预设时间间隔周期内,将获取到的节点变更信息发送给服务管理控制台11,以便服务管理控制台11可以确定当前各个节点的状态。
此外,当节点的变动是由新增节点注册(即新增节点)或删除原有节点而引起时,由于新增节点暂时没有与api网关节点建立通信连接,以及被删除的节点与api网关节点之间的通信连接被删除,此时,api网关节点无法获取到由新增节点或原有在线节点被删除而引起的节点变动。
在这种情况下,需要由后台工作人员在拓扑图管理界面通过手动配置的方式在拓扑图中添加对应的新增节点,并为新增节点配置相应的新增节点属性以及新增节点与其他节点间的连接关系;对于节点的删除,被删除的节点与其他节点之间的连接关系需要由后台工作人员在拓扑图管理界面通过手动配置的方式在拓扑图中删除对应的节点,并调整相应的连接关系。
此外,后台工作人员针对新增节点、节点的删除配置相应的节点变更信息,并将该节点变更信息保存在服务管理控制台11,以便服务管理控制台11可以确定当前各个节点的状态。当然,由后台工作人员配置的节点变更信息也包括发生状态变动的节点的节点属性及发生状态变动的节点与其他节点的连接关系。
当服务管理控制台11获取到由api网关节点通过注册中心12发送的节点变更信息,或由后台工作人员配置的节点变更信息后,可以根据节点变更信息所包括的节点属性及连接关系,对前一次所保存的节点属性及节点之间的连接关系(为了便于区分,称之为前一次节点属性及前一次连接关系)进行更新,得到当前时刻的各节点属性及节点之间的连接关系。
例如,对于新增节点,在前一次连接关系的基础上,新增新的节点,以及该新的节点的连接关系,同时添加该新的节点的节点属性;对于被删除节点,在前一次连接关系的基础上,删除该节点以及与该节点存在连接的连接关系。
值得指出的是,对于原有在线节点突然下线,或者对于原有下线节点突然上线,可以不用更改原有在线节点与其他节点的连接关系以及不用更改原有下线节点与其他节点的连接关系,只改变节点的节点属性,例如对于下线节点,将该下线节点的节点属性更改为“下线”(此时可将该下线节点与其他节点的连接关系保留);对于上线节点,将该上线节点的节点属性更改为“在线”。
步骤s120:根据各节点属性及节点之间的连接关系,更新保存在图数据库中的节点拓扑数据。
前文提及,在图数据库中保存有节点拓扑数据。
当服务管理控制台11获取到当前的各节点属性及节点之间的连接关系后,可以根据各节点属性及节点之间的连接关系,对原有的节点拓扑数据进行更新,从而得到更新后的节点拓扑数据。
例如,对于原有的下线节点上线的情况,可以将原有的下线节点的节点属性更改为“在线”。
例如,对于原有的在线节点下线的情况,可以将原有的在线节点的节点属性更改为“下线”。
例如,对于新增节点的情况,将新增的节点加入到图数据库的拓扑图中,以及根据新增节点与其他节点的连接关系,在拓扑图中形成新增节点及其连接关系对应的连线。此外,还可以将节点拓扑数据中与该新增节点对应的节点属性设置为“在线”,并将该新增节点与其他节点之间的连接关系更新到节点拓扑数据中。
例如,对于被删除的节点,可以在拓扑图中删除被删除的节点及其原有的连接关系对应的连线。若被删除的节点为api网关节点,应该将原拓扑图中,与被删除的节点存在连接关系的服务节点以及api网关节点之间的连线断开。此外,对于被删除的节点,还可以将节点拓扑数据中与该被删除节点与其他节点之间的连接关系删除。
值得指出的是,节点的新增、删除、上线、下线中的任何一种方式都会触发节点拓扑数据进行更新,从而触发后续路径以及路由信息的更新。
步骤s130:根据所述节点拓扑数据、所述消费服务申请信息中包括的服务消费节点及服务提供节点,调用图计算引擎计算所述服务消费节点与所述服务提供节点之间的路径。
在本申请实施例中,服务管理控制台11以服务消费节点为起点、以服务提供节点为终点,通过调用图计算引擎计算来搜索节点拓扑数据,从而确定出使得服务消费节点可达服务提供节点的路径。
当然,针对在历史周期内存在的历史服务消费节点以及历史服务提供节点,若历史服务消费节点对历史服务提供节点的访问持续到了当前周期,那么服务管理控制台11也可以调用图计算引擎,根据当前的节点拓扑数据、历史服务消费节点以及历史服务提供节点,更新历史服务消费节点与历史服务提供节点间的路径,避免由于节点变更导致历史服务消费节点与历史服务提供节点之间不可达。
当然,此处所计算的服务消费节点与服务提供节点之间的路径,也可以包括可达路径、最短路径或最佳路径中的至少一种。
步骤s140:根据所述路径生成路由信息,并将所述路由信息下发给所述路径中包括的api网关节点,以使所述服务消费节点根据所述路径中包括的api网关节点中保存的路由信息,完成对所述服务提供节点的访问。
其中,路径中包括的api网关节点即为服务消费节点访问服务提供节点时所使用的路径中所需经过的api网关节点。
值得指出的是,若服务消费节点与服务提供节点属于同一个集群,那么本次消费服务则在本集群内即可完成,所涉及到的api网关节点即为本集群内的第一类api网关;若服务消费节点与服务提供节点属于不同的集群,例如服务消费节点属于集群a,服务提供节点属于集群b,那么本次消费服务则需要跨集群才可完成,所涉及到的api网关节点至少包括集群a内的第一类api网关、集群a内的第二类api网关、集群b内的第一类api网关以及集群b内的第二类api网关。
相应的,若服务消费节点与服务提供节点属于同一个集群,那么路径中包括的api网关节点为该集群内的第一类api网关。
若在该集群内存在多个第一类api网关,且服务消费节点与服务提供节点分别与不同的第一类api网关连接,那么路径中包括的api网关节点至少包括与服务消费节点连接的第一类api网关、该集群内的与服务提供节点连接的第一类api网关。
相应的,根据上文中所举的例子,若服务消费节点与服务提供节点属于不同的集群,那么路径中包括的api网关节点至少包括集群a内的第一类api网关、集群a内的第二类api网关、集群b内的第一类api网关以及集群b内的第二类api网关。
在将路由信息下发给服务消费节点与服务提供节点之间的路径所相关的api网关节点后,服务消费节点可以向与其直接连接的api网关节点发送访问请求,api网关节点获取到访问请求后,根据访问请求中所携带的服务消费节方以及服务提供方查询预先下发的路由信息,并根据路由信息查询结果,将访问请求转发给下一个节点,以至于访问请求最终传达至服务提供节点,实现服务消费节点访问到服务提供节点的效果。
在上述存在访问需求,且需要确定路由信息时,服务管理控制台11可以根据当前的各节点属性及节点之间的连接关系,确定出服务消费节点与服务提供节点之间的可达路径,以便服务管理控制台11可以根据确定出的路径,计算当前可达的路由信息并下发给路径所需要经过的api网关节点,从而使得服务消费节点可以成功访问到服务提供节点。由于路由信息由服务管理控制台11根据当前的各节点属性及节点之间的连接关系即时计算,而不是采用现有技术中的静态配置路由(在现有技术中,网关之间不具有传递节点变化信息的功能,可能导致访问不可达),在此过程中,即使存在节点变动而导致原有的路由信息对应的路径不可达,服务管理控制台11也可以根据当前的各节点属性及节点之间的连接关系尽可能地计算出可达路径,从而避免由于节点变动导致的访问不可达。
对于存在新增节点的情况,一般都是为了给原有的具备相同功能的节点平摊压力。然而,对于现有技术中的通过静态配置路由的方式,由于服务管理控制台11不能感知到节点的动态扩容,因此,不能及时地将具备相同功能的节点运用到实际访问请求中,从而使得新增节点不能及时地体现出平摊压力的效果。
通过本申请实施例中所提供的路由确定方案,由于可以实时地感知到节点的动态扩容,因此,可以在确定路径时,通过一系列地负载均衡策略,使得新增节点可以及时实现其平摊压力的效果。
此外,在一些实施方式中,对于原有节点下线或原有节点被删除时,服务管理控制台11可以移出前一次已下发的路由信息中,与下线的原有节点或被删除的原有节点存在关联的路由信息,避免访问不可达。
此外,若下线的节点或被删除的节点为服务节点,且该服务节点为当前的服务提供节点,此时,服务管理控制台11在删除与该下线或被删除的服务节点相关的路由信息后,还可以搜寻是否存在与该下线或被删除的服务节点提供相同服务的目标服务节点,以便替代该下线或被删除的服务节点,并将目标服务节点确定为当前的服务提供节点。若不存在目标服务节点,服务管理控制台11发出容灾告警,以提醒用户服务不可达。
若下线或被删除的节点为api网关节点,且该api网关节点为当前的访问请求中所需要经过的api网关节点。此时,服务管理控制台11在移出与该下线或被删除的api网关节点相关的路由信息后,还可以搜寻是否存在可以替代该下线的api网关节点,从而使得访问可达到服务提供节点的目标网关节点。若不存在目标api网关节点,服务管理控制台11发出容灾告警,以提醒用户服务不可达。
当然,在一些实施方式中,上述各个节点可以应用到5g核心网络中,即上述所提及到的复杂网络环境为5g核心网,而本申请实施例所提供的路由确定方法,则用于实现5g核心网中的各个服务之间的调用交互。
此外,请参看图4,本申请实施例还提供一种路由确定方法,应用于上述api网关节点。该方法包括以下步骤。
步骤s210:当注册的任一服务节点发起服务节点之间的消费服务申请信息时,将所述消费服务申请信息发送给服务管理控制台,以使所述服务管理控制台调用图计算引擎,根据保存在图数据库中的节点拓扑数据、所述消费服务申请信息所包括的服务消费节点及服务提供节点,计算所述服务消费节点与所述服务提供节点之间的路径。
步骤s220:接收所述服务管理控制台根据所述路径生成的路由信息。
步骤s230:根据所述路由信息执行服务节点之间的消费服务访问。
此外,在一些实施方式中,api网关节点还可以在获取到与自身存在注册关系的服务节点的节点变动时,根据所述节点变动生成节点变更信息;然后将所述节点变更信息发送给所述服务管理控制台,以使所述服务管理控制台根据所述节点变更信息,更新保存在图数据库中的节点拓扑数据。其中,所述节点变动包括原有在线服务节点下线、原有下线服务节点上线中的至少一种。
此外,如图5所示,本申请实施例还提供一种路由确定装置400,路由确定装置400可以包括:获取模块410、更新模块420、计算模块430以及下发模块440。
获取模块410,用于当接收到api网关节点发送的服务节点之间的消费服务申请信息时,获取各节点属性及节点之间的连接关系,所述节点包括api网关节点及在各api网关节点注册的服务节点;
更新模块420,用于根据各节点属性及节点之间的连接关系,更新保存在图数据库中的节点拓扑数据;
计算模块430,用于根据所述节点拓扑数据、所述消费服务申请信息中包括的服务消费节点及服务提供节点,调用图计算引擎计算所述服务消费节点与所述服务提供节点之间的路径;
下发模块440,用于根据所述路径生成路由信息,并将所述路由信息下发给所述路径中包括的api网关节点,以使所述服务消费节点根据所述路径中包括的api网关节点中保存的路由信息,完成对所述服务提供节点的访问。
在一种可能的实施方式中,所述获取模块410,用于在确定获取到节点变更信息时,根据所述节点变更信息所包括的节点属性及连接关系,对前一次所保存的各节点属性及节点之间的连接关系进行更新,得到所述各节点属性及节点之间的连接关系;在确定未获取到节点变更信息时,将前一次所保存的各节点属性及节点之间的连接关系确定为所述各节点属性及节点之间的连接关系。
在一种可能的实施方式中,所述节点变更信息的生成由原有下线节点上线、原有在线节点下线、新增节点注册、删除原有节点中的至少一种触发。
在一种可能的实施方式中,所述装置还包括删除模块,用于在所述节点变更信息的生成由原有在线节点下线或删除原有节点而触发时,删除前一次已下发的路由信息中,与下线的原有节点以及被删除的原有节点存在关联的路由信息。
在一种可能的实施方式中,所述计算模块430,用于计算所述服务消费节点与所述服务提供节点之间的可达路径、最短路径或最佳路径中的至少一种路径。
本申请实施例所提供的路由确定装置400,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
此外,如图6所示,本申请实施例还提供一种路由确定装置500,应用于api网关节点,包括发送模块510、接收模块520以及访问模块530。
发送模块510,用于当注册的任一服务节点发起服务节点之间的消费服务申请信息时,将所述消费服务申请信息发送给服务管理控制台,以使所述服务管理控制台调用图计算引擎,根据保存在图数据库中的节点拓扑数据、所述消费服务申请信息所包括的服务消费节点及服务提供节点,计算所述服务消费节点与所述服务提供节点之间的路径;
接收模块520,用于接收所述服务管理控制台根据所述路径生成的路由信息;
访问模块530,用于根据所述路由信息执行服务节点之间的消费服务访问。
在一种可能的实施方式中,路由确定装置500还包括获取模块以及生成模块。
获取模块,用于获取到与自身存在注册关系的服务节点的节点变动,所述节点变动包括原有在线服务节点下线、原有下线服务节点上线中的至少一种;
生成模块,用于根据所述节点变动生成节点变更信息;
所述发送模块510,还用于将所述节点变更信息发送给所述服务管理控制台,以使所述服务管理控制台根据所述节点变更信息,更新保存在图数据库中的节点拓扑数据。
此外,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被计算机运行时,执行如上述的路由确定方法所包含的步骤。
此外,请参看图7,本发明实施例还提供一种电子设备100。
可选的,电子设备100,可以是,但不限于个人电脑(personalcomputer,pc)、移动上网设备(mobileinternetdevice,mid)、服务器等设备。其中,服务器可以是,但不限于网络服务器、云端服务器等,且在电子设备100上部署有管理平台10。
其中,电子设备100可以包括:处理器110、存储器120。
应当注意,图7所示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,电子设备100也可以具有其他组件和结构。
处理器110、存储器120以及其他可能出现于电子设备100的组件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,处理器110、存储器120以及其他可能出现的组件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
存储器120用于存储程序,例如存储有上文出现的路由确定方法对应的程序或者上文出现的路由确定装置。可选的,当存储器120内存储有路由确定装置时,路由确定装置包括至少一个可以以软件或固件(firmware)的形式存储于存储器120中的软件功能模块。
可选的,路由确定装置所包括软件功能模块也可以固化在电子设备100的操作系统(operatingsystem,os)中。
处理器110用于执行存储器120中存储的可执行模块,例如路由确定装置包括的软件功能模块或计算机程序。当处理器110在接收到执行指令后,可以执行计算机程序,例如执行前述路由确定方法。
当然,本申请任一实施例所揭示的方法都可以应用于处理器110中,或者由处理器110实现。
综上所述,本发明实施例提出的路由确定方法、装置、电子设备及计算机可读存储介质,当服务节点之间存在访问需求,且需要确定路由信息时,服务管理控制台可以根据获取到的各节点属性及节点之间的连接关系确定出服务消费节点与服务提供节点之间的可达路径,以便服务管理控制台可以根据确定出的路径,计算当前可达的路由信息并下发给路径所需要经过的api网关节点,从而使得服务消费节点可以成功访问到服务提供节点。由于路由信息由服务管理控制台根据当前获取到的各节点属性及节点之间的连接关系即时计算,而不是采用现有技术中的静态配置路由,在此过程中,即使原有节点存在变更可能导致原有的路由信息对应的路径不可达,也可以根据当前获取到的各节点属性及节点之间的连接关系尽可能地计算出可达路径,从而避免由于节点变动导致的访问不可达。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,笔记本电脑,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
1.一种路由确定方法,其特征在于,应用于服务管理控制台,所述方法包括:
当接收到api网关节点发送的服务节点之间的消费服务申请信息时,获取各节点属性及节点之间的连接关系,所述节点包括api网关节点及在各api网关节点注册的服务节点;
根据各节点属性及节点之间的连接关系,更新保存在图数据库中的节点拓扑数据;
根据所述节点拓扑数据、所述消费服务申请信息中包括的服务消费节点及服务提供节点,调用图计算引擎计算所述服务消费节点与所述服务提供节点之间的路径;
根据所述路径生成路由信息,并将所述路由信息下发给所述路径中包括的api网关节点,以使所述服务消费节点根据所述路径中包括的api网关节点中保存的路由信息,完成对所述服务提供节点的访问。
2.根据权利要求1所述的方法,其特征在于,所述获取各节点属性及节点之间的连接关系,包括:
在确定获取到节点变更信息时,根据所述节点变更信息所包括的节点属性及连接关系,对前一次所保存的各节点属性及节点之间的连接关系进行更新,得到所述各节点属性及节点之间的连接关系;
在确定未获取到节点变更信息时,将前一次所保存的各节点属性及节点之间的连接关系确定为所述各节点属性及节点之间的连接关系。
3.根据权利要求2所述的方法,其特征在于,所述节点变更信息的生成由原有下线节点上线、原有在线节点下线、新增节点注册、删除原有节点中的至少一种触发。
4.根据权利要求3所述的方法,其特征在于,在所述节点变更信息的生成由原有在线节点下线或删除原有节点而触发时,所述方法还包括:
删除前一次已下发的路由信息中,与下线的原有节点以及被删除的原有节点存在关联的路由信息。
5.一种路由确定方法,其特征在于,应用于api网关节点,所述方法包括:
当注册的任一服务节点发起服务节点之间的消费服务申请信息时,将所述消费服务申请信息发送给服务管理控制台,以使所述服务管理控制台调用图计算引擎,根据保存在图数据库中的节点拓扑数据、所述消费服务申请信息所包括的服务消费节点及服务提供节点,计算所述服务消费节点与所述服务提供节点之间的路径;
接收所述服务管理控制台根据所述路径生成的路由信息;
根据所述路由信息执行服务节点之间的消费服务访问。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
获取到与自身存在注册关系的服务节点的节点变动,所述节点变动包括原有在线服务节点下线、原有下线服务节点上线中的至少一种;
根据所述节点变动生成节点变更信息;
将所述节点变更信息发送给所述服务管理控制台,以使所述服务管理控制台根据所述节点变更信息,更新保存在图数据库中的节点拓扑数据。
7.一种路由确定装置,其特征在于,应用于服务管理控制台,所述装置包括:
获取模块,用于当接收到api网关节点发送的服务节点之间的消费服务申请信息时,获取各节点属性及节点之间的连接关系,所述节点包括api网关节点及在各api网关节点注册的服务节点;
更新模块,用于根据各节点属性及节点之间的连接关系,更新保存在图数据库中的节点拓扑数据;
计算模块,用于根据所述节点拓扑数据、所述消费服务申请信息中包括的服务消费节点及服务提供节点,调用图计算引擎计算所述服务消费节点与所述服务提供节点之间的路径;
下发模块,用于根据所述路径生成路由信息,并将所述路由信息下发给所述路径中包括的api网关节点,以使所述服务消费节点根据所述路径中包括的api网关节点中保存的路由信息,完成对所述服务提供节点的访问。
8.一种路由确定装置,其特征在于,应用于api网关节点,所述装置包括:
发送模块,用于当注册的任一服务节点发起服务节点之间的消费服务申请信息时,将所述消费服务申请信息发送给服务管理控制台,以使所述服务管理控制台调用图计算引擎,根据保存在图数据库中的节点拓扑数据、所述消费服务申请信息所包括的服务消费节点及服务提供节点,计算所述服务消费节点与所述服务提供节点之间的路径;
接收模块,用于接收所述服务管理控制台根据所述路径生成的路由信息;
访问模块,用于根据所述路由信息执行服务节点之间的消费服务访问。
9.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器和所述处理器连接;
所述存储器用于存储程序;
所述处理器调用存储于所述存储器中的程序,以执行如权利要求1-6中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被计算机运行时执行如权利要求1-6中任一项所述的方法。
技术总结