CN114363233A - 一种分组路由方法、装置、电子设备及存储介质 - Google Patents
一种分组路由方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114363233A CN114363233A CN202011083914.0A CN202011083914A CN114363233A CN 114363233 A CN114363233 A CN 114363233A CN 202011083914 A CN202011083914 A CN 202011083914A CN 114363233 A CN114363233 A CN 114363233A
- Authority
- CN
- China
- Prior art keywords
- service
- micro
- idc
- available
- micro service
- 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
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000001514 detection method Methods 0.000 claims description 37
- 230000008859 change Effects 0.000 claims description 8
- 230000009471 action Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 15
- 238000004590 computer program Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000011161 development Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种分组路由方法、装置、电子设备及存储介质。该分组路由方法,由微服务框架下的网关执行,包括:接收微服务的注册请求;根据所述注册请求中的组件依赖信息确定微服务的路由组别;当接收到客户端对目标微服务的调用请求时,根据目标微服务的路由组别信息获取微服务提供方信息;根据所述微服务提供方信息确定目标微服务的可用网络数据中心IDC,根据确定的可用IDC实现目标微服务的调用。本申请在网关处对微服务进行注册分组,根据微服务的组件依赖信息确定微服务的路由组别,实现了网关对微服务以组为单位的路由管理,可以更好地解决微服务IDC的切换问题,省去了开发前置服务的工作量和部署机器的硬件成本。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种分组路由方法、装置、电子设备及存储介质。
背景技术
随着业务的发展,为了应对频繁的升级和业务扩展,微服务架构被越来越多地采用。微服务架构,是指将一个大型复杂软件应用由一个或多个微服务组成,其中的各个微服务可被独立部署,彼此之间是松耦合的。每个微服务仅专注于完成一件任务并很好地完成该任务,每个任务代表着一个小的业务能力,因而具有灵活性高、去集中化的优点。
然而,目前客户端对微服务的访问调用,普遍使用前置系统进行IDC(InternetData Center,互联网数据中心)的切换,其中,同一微服务在不同的IDC上均有部署,若当前IDC的微服务不可用,则需要接入另一个IDC以实现调用。因而在微服务之上需增加一层前置系统,导致处理链路增长,带来性能降低和风险增加。
发明内容
本申请实施例提供了一种分组路由方法、装置、电子设备及存储介质,以省去前置服务系统,增加网关灵活切换IDC的能力,提升服务性能。
本申请实施例采用下述技术方案:
第一方面,本申请实施例提供一种分组路由方法,由微服务框架下的网关执行,所述方法包括:
接收微服务的注册请求;
根据所述注册请求中的组件依赖信息确定微服务的路由组别;
当接收到客户端对目标微服务的调用请求时,根据目标微服务的路由组别信息获取微服务提供方信息;
根据所述微服务提供方信息确定目标微服务的可用网络数据中心IDC,根据确定的可用IDC实现目标微服务的调用。
可选地,所述方法还包括:
判断本次对目标微服务的调用请求是否满足预设条件;
所述根据所述微服务提供方信息确定目标微服务的可用网络数据中心IDC,包括:
在本次对目标微服务的调用请求满足预设条件的情况下,对目标微服务的可用IDC进行探测;
根据探测结果确定目标微服务的可用IDC。
可选地,所述对目标微服务的可用IDC进行探测,包括:
根据所述微服务提供方信息,确定目标微服务所注册的服务注册中心地址列表;
根据地址列表访问对应的服务注册中心,获取目标微服务的服务地址;
根据所述服务地址探测目标微服务的可用IDC;
所述根据所述微服务提供方信息确定目标微服务的可用网络数据中心IDC,还包括:
若探测到目标微服务的可用IDC发生变化,则将目标微服务所在路由组别下的所有微服务调用请求切换至探测到的可用IDC。
可选地,所述判断本次对目标微服务的调用请求是否满足预设条件,包括:
若在本次目标微服务调用请求之前,目标微服务所在路由组别未进行过可用IDC探测,则判定为满足预设条件;和/或
若本次目标微服务调用请求距离该目标微服务所在路由组别上一次发生可用IDC探测的时间间隔大于预设阈值,则判定为满足预设条件。
可选地,所述将目标微服务所在路由组别下的所有微服务调用请求切换至探测到的可用IDC,包括:
在网关本地缓存探测到的可用IDC信息;
接收到同一路由组别下的微服务调用请求时,根据缓存的可用IDC信息,将同一路由组别下的所有微服务的调用请求切换至探测到的可用IDC。
可选地,同一路由组别下的各微服务具有相匹配的组件依赖信息,所述相匹配的组件依赖信息包括:依赖相同的数据库、相同的Redis存储系统和/或相同的消息队列。
可选地,所述根据所述微服务提供方信息确定目标微服务的可用网络数据中心IDC包括:
根据目标微服务的路由组别信息获取目标微服务的可用IDC探测策略,根据获取的可用IDC探测策略确定目标微服务的可用网络数据中心IDC。
可选地,所述可用IDC探测策略包括如下的一种或多种:当微服务强依赖数据库时,根据数据库更新动作是否成功确定IDC可用性;当微服务强依赖Redis存储系统时,根据Redis存储系统读写是否成功确定IDC可用性;根据人工设定的可用性标记确定IDC可用性。
第二方面,本申请实施例还提供一种分组路由装置,应用于微服务框架下的网关,所述装置用于实现本申请实施例第一方面所述方法。
第三方面,本申请实施例还提供一种电子设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行本申请实施例第一方面所述方法。
第四方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行本申请实施例第一方面所述方法。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
本申请在网关处对微服务进行注册分组,根据微服务的组件依赖信息确定微服务的路由组别,在接收到调用请求时,根据目标微服务的路由组别获取微服务提供方信息,以确定其可用IDC,从而统一了组件依赖信息一致的微服务路由策略,实现了网关对微服务以组为单位的路由管理,可以更好地解决微服务IDC的切换管理问题,从而省去了前置服务开发,节省了开发前置服务的工作量和部署机器的硬件成本。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为现有技术使用前置系统进行微服务IDC路由切换的示意图;
图2为本申请一个实施例的分组路由方法的流程示意图;
图3为本申请另一个实施例的分组路由方法中网关调用微服务过程时序图;
图4为本申请一个实施例的分组路由装置的框图;
图5为本申请一个实施例的电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
在微服务架构下,主要有三种角色:服务提供者、服务消费者和服务注册中心。服务提供者在启动时将服务及地址信息记录到服务注册中心。服务消费者在需要使用服务时,向服务注册中心查询并获得服务地址信息后进行调用。在实现微服务架构的过程中,以银行等企业网络为例,需要使用方专线(租户服务器与数据中心互联网络的公共服务器之间的互通线路)接入,若当前IDC服务不可用时,则需要使用者专线接入另一个IDC,而专线接入的成本高昂。目前,行业内普遍使用前置系统实现IDC的切换,即在微服务之上增加一层前置服务系统,即如图1所示的“前置微服务”。不同IDC上的服务均注册至同一服务注册中心,由前置微服务进行IDC路由判断。
然而,这样的方式造成微服务架构的开发成本和硬件成本高,需增加前置微服务的开发工作及部署机器的硬件成本。而且,由于增加了一层前置服务系统,导致处理链路增长,因而还会带来性能的降低和风险的增加。此外,前置微服务和微服务都向服务注册中心注册服务,使得服务的识别过程变得更加复杂。
基于上述原因,以及网关在微服务调用中的协议转发与路由功能,本申请实施例提出一种分组路由方法,使得网关具有可靠的路由切换能力,根据微服务的组件依赖关系划分微服务的路由组别,统一了组件依赖信息一致的微服务路由策略,实现了对微服务以组为单位的路由管理,可以更灵活地确定目标微服务的可用网络数据中心IDC,解决微服务IDC的切换管理问题,该方法仅需要对网关的路由方法进行分组升级,相比于现有技术,省去了前置服务系统的开发,从而节省了开发工作量和部署机器的硬件成本,并且缩短了处理链路,提高了服务性能,降低了调用风险。
图2为本申请一个实施例的分组路由方法的流程示意图,如图2所示,本申请实施例的分组路由方法,由微服务框架下的网关执行,方法包括以下步骤:
步骤S210,接收微服务的注册请求。
步骤S220,根据所述注册请求中的组件依赖信息确定微服务的路由组别。也即是说,当微服务在网关注册时,为微服务建立路由组别信息,根据微服务的组件依赖关系确定所属路由分组。路由组别信息例如包括:组的ID(Identity document,身份标识)、组的名称以及组内微服务的微服务提供方信息等。微服务的调用需要依赖一些组件,用以实现服务描述、服务发现、服务监控、服务追踪和服务治理等,涉及注册中心、分布式存储、消息队列、断路器和数据库等内容。所述微服务的组件依赖信息,即是指对该微服务的依赖组件进行记录和说明的信息。
步骤S230,当接收到客户端对目标微服务的调用请求时,根据目标微服务的路由组别信息获取微服务提供方信息。
步骤S240,根据所述微服务提供方信息确定目标微服务的可用网络数据中心IDC,根据确定的可用IDC实现目标微服务的调用。
由此,本申请实施例的这种分组路由方法,通过在网关处注册微服务信息,根据微服务的组件依赖信息划分微服务的路由组别,实现了网关对微服务的分组管理。本申请实施例这种分组路由方法,使网关统一了组件依赖信息一致的微服务的路由策略,实现了网关对微服务以组为单位的路由探测,通过对网关路由方法的改进就可以更好地解决微服务IDC的切换问题,可以省去前置服务系统的开发,在节省开发工作量和硬件成本的同时,缩短处理链路,提高服务性能,并降低了故障风险。
一般而言,一个独立应用下的众多微服务,由于用于实现某一领域下的相关功能,具有相同/相似的组件依赖信息,即被分为同一组别。以订单应用为例,订单应用包括“订单查询”、“订单新增”和“订单修改”等众多微服务,这些微服务共同完成订单管理领域下的相关功能,依赖于相同的订单表数据库,部署于同一或同批设备上,因而,这些微服务具有关联属性,当其中一些微服务发生故障时,相关的微服务也极可能出现故障,所以,将这些微服务分为一组,以组为单位进行IDC分组路由切换,就可以有效发现故障,提升服务性能。
例如,在企业应用中,订单应用的众多微服务所属同一分组,积分应用的众多微服务所属同一分组,物流应用的众多微服务所属同一分组,等等。每组内的微服务在网关处依据路由组别具有统一的分组路由策略,而不同组之间则相互独立,任一组微服务切换IDC时,不会影响同一网关下的其他微服务分组。从而,本实施例的分组路由方法中,网关的分组路由方式以微服务分组为单位,更加灵活可靠,对组件依赖信息一致的微服务进行统一分组路由,实现独立应用的路由切换,而不同分组之间,路由切换过程不受彼此影响,这种以微服务分组为主体的路由切换方式,相比传统以网关和IDC链路为主体的切换方式,路由切换的代价更小,切换方式也更加灵活。
在本申请的一个实施例中,该分组路由方法还包括:判断本次对目标微服务的调用请求是否满足预设条件。预设条件可以根据网络硬件设备的性能、微服务所属应用的重要性和IDC切换频率的高低进行适应性地设置,用以确保IDC实际可用,满足对微服务调用性能的要求。
在此基础上,所述步骤S240中,根据所述微服务提供方信息确定目标微服务的可用网络数据中心IDC,包括:在本次对目标微服务的调用请求满足预设条件的情况下,对目标微服务的可用IDC进行探测,根据探测结果确定目标微服务的可用IDC;若探测到目标微服务的可用IDC发生变化,则将目标微服务所在路由组别下的所有微服务调用请求切换至探测到的可用IDC。
在本申请的一个实施例中,所述将目标微服务所在路由组别下的所有微服务调用请求切换至探测到的可用IDC,具体包括:在网关本地缓存探测到的可用IDC信息;而后,在接收到同一路由组别下的微服务调用请求时,根据缓存的可用IDC信息,将同一路由组别下的所有微服务的调用请求切换至探测到的可用IDC。
由于本申请实施例将微服务按照组件依赖关系划分到组,并以组为单位对微服务进行可用IDC切换,因而,当探测到某一路由组别中的一个微服务调用发生异常时,整组微服务的IDC都会跟着切换,这样,组内其他具有相同依赖组件的微服务被调用时,就不会因为相同的故障而再次受阻,从而使服务性能和速度得到提升。
在本申请的一个优选实施例中,展示一种判断本次对目标微服务的调用请求是否满足预设条件的具体实现方案,包括:若在本次目标微服务调用请求之前,目标微服务所在路由组别未进行过可用IDC探测,则判定为满足预设条件;和/或,若本次目标微服务调用请求距离该目标微服务所在路由组别上一次发生可用IDC探测的时间间隔大于预设阈值,则判定为满足预设条件。
也就是说,当发现目标微服务所在分组是第一次发生微服务调用时,由于尚不清楚微服务所依赖的IDC状态,因此针对首次调用,进行可用IDC探测,以确定实际可用的IDC,作为该组路由组别的IDC切换信息。和/或,当距离某路由组别上一次IDC探测已经过去了较长时间(时间间隔大于预设阈值),则考虑可能会发生IDC状态变化,此时若仍以原可用IDC信息调用服务,则可能会因为原可用IDC发生故障而导致调用失败,造成资源浪费和时滞问题,影响服务性能,因此,本实施例在这种状况下也对该路由组别进行可用IDC探测,以确定实际准确的可用IDC,作为该路由组别的IDC切换信息。
在本申请实施例中,IDC的探测使用lazy(延迟)模式,即当需要转发微服务调用时,才进行该分组的可用IDC探测,避免在不使用该路由组别的微服务时造成资源浪费。同时,为了减轻IDC探测对性能带来的消耗,每组微服务连续两次IDC探测之间设置分钟级的时间间隔预设阈值,以减轻探测服务的负担。当然,每组微服务连续两次IDC探测之间的时间间隔预设阈值,可以根据微服务的重要性和时效要求进行适应性调整,在链路性能和IDC探测负担之间进行平衡。
在本申请的一个实施例中,网关处微服务注册形成的路由组别分组信息中,可以定义针对该路由组别的路由策略,包括可用IDC的探测方法等内容。IDC探测方法可以采用通用算法,也可以自行定制路由探测方法。
在本申请的一个实施例中,提出一种对目标微服务的可用IDC进行探测的具体实现方法,包括:根据所述微服务提供方信息,确定目标微服务所注册的服务注册中心地址列表,根据地址列表访问对应的服务注册中心,获取目标微服务的服务地址,根据所述服务地址探测目标微服务的可用IDC。
图3为本申请另一个实施例的分组路由方法中,网关调用微服务过程时序图;结合图3,举例对本申请实施例路由方法的网关时序调用进行说明。
首先,该网关承载的微服务已经在网关处进行了分组注册,确定了微服务的路由组别。
在此基础上,如图3所示,客户端浏览器通过http(请求-响应协议)访问网关调用目标微服务。网关接收到该调用请求后,查询网关的网关配置服务(即该目标微服务的路由组别分组信息),获取目标微服务所在的服务注册中心地址列表,并向这些服务注册中心查询微服务可用提供方,获得可用IDC信息,例如包括:IDC-a、IDC-b和IDC-c。
继而,网关通过通用的或定制的探测方法,探测各微服务可用IDC,从而筛选出可用IDC中的服务提供者为IDC-a,从而确定实际能够提供正常微服务的可用IDC为IDC-a。
最后,网关根据探测出的可用IDC,即IDC-a,使用RPC(Remote Procedure Call,远程过程调用)方式调用微服务,返回给客户端浏览器,完成本次目标微服务的调用。
并且,在上述路由探测步骤中,探测出的实际可用IDC(即IDC-a)缓存在网关本地,作为该目标微服务所在路由组别的路由信息,之后该路由组别下所有微服务的调用请求,都通过这个缓存的路由信息进行调用,直至满足预设条件发生下一次可用IDC探测。若探测到实际可用IDC发生变化,例如新的实际可用IDC变为IDC-b,则将新的实际可用IDC变化(IDC-b)改写到网关的本地缓存,并作为整组路由组别的路由切换信息,实现微服务的整组路由切换,解决IDC不可用、切换不灵活的技术问题。
在本申请的一个实施例中,同一路由组别下的各微服务具有相匹配的组件依赖信息,所述相匹配的组件依赖信息包括:依赖相同的数据库、相同的Redis存储系统和/或相同的消息队列(Message Queue,MQ)。当这些强依赖组件出现故障时,就需要切换IDC才能实现正常的服务调用,在本申请的实施例中,通过对微服务的分组路由,此时分组内的所有微服务都会进行切换,如订单系统微服务分组、积分系统微服务分组等的整体路由切换,从而提高服务性能,而且,通过划分不同路由组别,如订单系统微服务分组、积分系统微服务分组等,彼此之间的路由切换不会彼此影响,可以独立高效进行。
在本申请的一个实施例中,所述根据所述微服务提供方信息确定目标微服务的可用网络数据中心IDC,具体包括:根据目标微服务的路由组别信息获取目标微服务的可用IDC探测策略,根据获取的可用IDC探测策略确定目标微服务的可用网络数据中心IDC。所述可用IDC探测策略包括如下的一种或多种:当微服务强依赖数据库时,根据数据库更新动作是否成功确定IDC可用性;当微服务强依赖Redis存储系统时,根据Redis存储系统读写是否成功确定IDC可用性;根据人工设定的可用性标记确定IDC可用性。
微服务的工作常伴随着写数据库的操作,由IDC对外提供服务,当硬件设备、数据库和网络等发生故障时,才会需要切换到其他IDC。而数据库更新动作是否成功以及Redis存储系统的读写是否成功,可作为自动生成的可用性标志,用于IDC可用性探测,而对于一些依赖于某个难以自动探测的外部组件的微服务来说,可以通过人工设定可用性标记,来实现IDC的可用性探测。当然,具体的可用IDC探测策略可以根据微服务特定针对性设置,不仅局限与本申请实施例上述方式。
本申请实施例还公开了一种分组路由装置,应用于微服务框架下的网关,该分组路由装置用于实现上述任一实施例所述的路由分组方法。
图4为本申请一个实施例的分组路由装置的框图;参见图4,该分组路由装置400包括:接收模块410、分组模块420、获取模块430和调用模块440。
接收模块410,用于接收微服务的注册请求。
分组模块420,用于根据所述注册请求中的组件依赖信息确定微服务的路由组别,以按照组件依赖关系确定微服务分组。
获取模块430,用于在接收到客户端对目标微服务的调用请求时,根据目标微服务的路由组别信息获取微服务提供方信息。
调用模块440,用于根据所述微服务提供方信息确定目标微服务的可用网络数据中心IDC,根据确定的可用IDC实现目标微服务的调用。
在本申请的一个实施例中,该分组路由装置400还包括:探测判断模块,用于判断本次对目标微服务的调用请求是否满足预设条件。具体地,探测判断模块用于作出如下预设条件判断:若在本次目标微服务调用请求之前,目标微服务所在路由组别未进行过可用IDC探测,则判定为满足预设条件;和/或,若本次目标微服务调用请求距离该目标微服务所在路由组别上一次发生可用IDC探测的时间间隔大于预设阈值,则判定为满足预设条件。
对应地,调用模块440,在本次目标微服务的调用请求满足预设条件的情况下,对目标微服务的可用IDC进行探测,根据探测结果确定目标微服务的可用IDC;若探测到目标微服务的可用IDC发生变化,则将目标微服务所在路由组别下的所有微服务调用请求切换至探测到的可用IDC。
在本申请的一个实施例中,调用模块440,通过所述微服务提供方信息,确定目标微服务所注册的服务注册中心地址列表,根据地址列表访问对应的服务注册中心,获取目标微服务的服务地址,根据所述服务地址探测目标微服务的可用IDC。
在本申请的一个实施例中,进一步地,调用模块440,在网关本地缓存探测到的可用IDC信息;从而在接收到同一路由组别下的微服务调用请求时,根据缓存的可用IDC信息,将同一路由组别下的所有微服务的调用请求切换至探测到的可用IDC,以完成整组微服务的可用IDC路由切换。
在本申请的一个实施例中,分组模块420,将具有相匹配的组件依赖信息的微服务分为同一组,所述相匹配的组件依赖信息包括:依赖相同的数据库、相同的Redis存储系统和/或相同的消息队列。
在本申请的一个实施例中,调用模块440,用于根据目标微服务的路由组别信息获取目标微服务的可用IDC探测策略,根据获取的可用IDC探测策略确定目标微服务的可用网络数据中心IDC;所述可用IDC探测策略包括如下的一种或多种:当微服务强依赖数据库时,根据数据库更新动作是否成功确定IDC可用性;当微服务强依赖Redis存储系统时,根据Redis存储系统读写是否成功确定IDC可用性;根据人工设定的可用性标记确定IDC可用性。
能够理解,上述分组路由装置,能够实现前述实施例中提供的分组路由方法的各个步骤,关于分组路由方法的相关原理以及有益效果阐释均适用于本申请的分组路由装置,此处不再赘述。
本申请实施例还公开了一种电子设备,图5是本申请的一个实施例电子设备的结构示意图。请参考图5,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-AccessMemory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成分组路由装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
接收微服务的注册请求;
根据所述注册请求中的组件依赖信息确定微服务的路由组别;
当接收到客户端对目标微服务的调用请求时,根据目标微服务的路由组别信息获取微服务提供方信息;
根据所述微服务提供方信息确定目标微服务的可用网络数据中心IDC,根据确定的可用IDC实现目标微服务的调用。
上述如本申请图4所示实施例揭示的分组路由装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图4中分组路由装置执行的方法,并实现分组路由装置在图4所示实施例的功能,本申请实施例在此不再赘述。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图4所示实施例中分组路由装置执行的方法,并具体用于执行:
接收微服务的注册请求;
根据所述注册请求中的组件依赖信息确定微服务的路由组别;
当接收到客户端对目标微服务的调用请求时,根据目标微服务的路由组别信息获取微服务提供方信息;
根据所述微服务提供方信息确定目标微服务的可用网络数据中心IDC,根据确定的可用IDC实现目标微服务的调用。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (11)
1.一种分组路由方法,由微服务框架下的网关执行,其中,所述方法包括:
接收微服务的注册请求;
根据所述注册请求中的组件依赖信息确定微服务的路由组别;
当接收到客户端对目标微服务的调用请求时,根据目标微服务的路由组别信息获取微服务提供方信息;
根据所述微服务提供方信息确定目标微服务的可用网络数据中心IDC,根据确定的可用IDC实现目标微服务的调用。
2.如权利要求1所述方法,其中,所述方法还包括:
判断本次对目标微服务的调用请求是否满足预设条件;
所述根据所述微服务提供方信息确定目标微服务的可用网络数据中心IDC,包括:
在本次对目标微服务的调用请求满足预设条件的情况下,对目标微服务的可用IDC进行探测;
根据探测结果确定目标微服务的可用IDC。
3.如权利要求2所述方法,其中,所述对目标微服务的可用IDC进行探测,包括:
根据所述微服务提供方信息,确定目标微服务所注册的服务注册中心地址列表;
根据地址列表访问对应的服务注册中心,获取目标微服务的服务地址;
根据所述服务地址探测目标微服务的可用IDC;
所述根据所述微服务提供方信息确定目标微服务的可用网络数据中心IDC,还包括:
若探测到目标微服务的可用IDC发生变化,则将目标微服务所在路由组别下的所有微服务调用请求切换至探测到的可用IDC。
4.如权利要求2所述方法,其中,所述判断本次对目标微服务的调用请求是否满足预设条件,包括:
若在本次目标微服务调用请求之前,目标微服务所在路由组别未进行过可用IDC探测,则判定为满足预设条件;和/或
若本次目标微服务调用请求距离该目标微服务所在路由组别上一次发生可用IDC探测的时间间隔大于预设阈值,则判定为满足预设条件。
5.如权利要求2所述方法,其中,所述将目标微服务所在路由组别下的所有微服务调用请求切换至探测到的可用IDC,包括:
在网关本地缓存探测到的可用IDC信息;
接收到同一路由组别下的微服务调用请求时,根据缓存的可用IDC信息,将同一路由组别下的所有微服务的调用请求切换至探测到的可用IDC。
6.如权利要求1所述方法,其中,同一路由组别下的各微服务具有相匹配的组件依赖信息,所述相匹配的组件依赖信息包括:依赖相同的数据库、相同的Redis存储系统和/或相同的消息队列。
7.如权利要求1-6中任一项所述方法,其中,所述根据所述微服务提供方信息确定目标微服务的可用网络数据中心IDC包括:
根据目标微服务的路由组别信息获取目标微服务的可用IDC探测策略,根据获取的可用IDC探测策略确定目标微服务的可用网络数据中心IDC。
8.如权利要求7所述方法,其中,所述可用IDC探测策略包括如下的一种或多种:当微服务强依赖数据库时,根据数据库更新动作是否成功确定IDC可用性;当微服务强依赖Redis存储系统时,根据Redis存储系统读写是否成功确定IDC可用性;根据人工设定的可用性标记确定IDC可用性。
9.一种分组路由装置,应用于微服务框架下的网关,其中,所述装置用于实现权利要求1~8之任一所述方法。
10.一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行所述权利要求1~8之任一所述方法。
11.一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行所述权利要求1~8之任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011083914.0A CN114363233B (zh) | 2020-10-12 | 2020-10-12 | 一种分组路由方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011083914.0A CN114363233B (zh) | 2020-10-12 | 2020-10-12 | 一种分组路由方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114363233A true CN114363233A (zh) | 2022-04-15 |
CN114363233B CN114363233B (zh) | 2023-12-22 |
Family
ID=81090294
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011083914.0A Active CN114363233B (zh) | 2020-10-12 | 2020-10-12 | 一种分组路由方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114363233B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114866617A (zh) * | 2022-04-28 | 2022-08-05 | 济南浪潮数据技术有限公司 | 一种微服务请求处理方法、装置、设备及介质 |
CN115118767A (zh) * | 2022-06-22 | 2022-09-27 | 中国银行股份有限公司 | 一种可定制化的单元化路由组件的实现方法、装置及设备 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9716617B1 (en) * | 2016-06-14 | 2017-07-25 | ShieldX Networks, Inc. | Dynamic, load-based, auto-scaling network security microservices architecture |
CN107612955A (zh) * | 2016-07-12 | 2018-01-19 | 深圳市远行科技股份有限公司 | 微服务提供方法、装置及系统 |
CN108632299A (zh) * | 2017-03-15 | 2018-10-09 | 北京京东尚科信息技术有限公司 | 增强注册中心可用性的方法、装置、电子设备和存储介质 |
US20190004871A1 (en) * | 2017-06-28 | 2019-01-03 | Intel Corporation | Microservices architecture |
CN109191008A (zh) * | 2018-09-30 | 2019-01-11 | 江苏农牧科技职业学院 | 一种用于水产品质量安全监管系统的微服务框架系统 |
CN110391940A (zh) * | 2019-07-26 | 2019-10-29 | 广州虎牙科技有限公司 | 服务地址的响应方法、装置、系统、设备和存储介质 |
CN111147567A (zh) * | 2019-12-23 | 2020-05-12 | 中国银联股份有限公司 | 服务调用方法、装置、设备及介质 |
CN111147588A (zh) * | 2019-12-27 | 2020-05-12 | 上海浦东发展银行股份有限公司 | 企业级微服务平台中实现跨域跨中心通信的方法及系统 |
CN111193803A (zh) * | 2019-12-31 | 2020-05-22 | 四川省公安科研中心 | 基于spring cloud的微服务构建方法及spring cloud微服务架构 |
CN111221653A (zh) * | 2020-01-06 | 2020-06-02 | 中国银联股份有限公司 | 一种服务处理方法、装置及计算机可读存储介质 |
CN111490890A (zh) * | 2019-01-28 | 2020-08-04 | 珠海格力电器股份有限公司 | 基于微服务架构的分级注册方法、装置、存储介质及设备 |
-
2020
- 2020-10-12 CN CN202011083914.0A patent/CN114363233B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9716617B1 (en) * | 2016-06-14 | 2017-07-25 | ShieldX Networks, Inc. | Dynamic, load-based, auto-scaling network security microservices architecture |
CN107612955A (zh) * | 2016-07-12 | 2018-01-19 | 深圳市远行科技股份有限公司 | 微服务提供方法、装置及系统 |
CN108632299A (zh) * | 2017-03-15 | 2018-10-09 | 北京京东尚科信息技术有限公司 | 增强注册中心可用性的方法、装置、电子设备和存储介质 |
US20190004871A1 (en) * | 2017-06-28 | 2019-01-03 | Intel Corporation | Microservices architecture |
CN109191008A (zh) * | 2018-09-30 | 2019-01-11 | 江苏农牧科技职业学院 | 一种用于水产品质量安全监管系统的微服务框架系统 |
CN111490890A (zh) * | 2019-01-28 | 2020-08-04 | 珠海格力电器股份有限公司 | 基于微服务架构的分级注册方法、装置、存储介质及设备 |
CN110391940A (zh) * | 2019-07-26 | 2019-10-29 | 广州虎牙科技有限公司 | 服务地址的响应方法、装置、系统、设备和存储介质 |
CN111147567A (zh) * | 2019-12-23 | 2020-05-12 | 中国银联股份有限公司 | 服务调用方法、装置、设备及介质 |
CN111147588A (zh) * | 2019-12-27 | 2020-05-12 | 上海浦东发展银行股份有限公司 | 企业级微服务平台中实现跨域跨中心通信的方法及系统 |
CN111193803A (zh) * | 2019-12-31 | 2020-05-22 | 四川省公安科研中心 | 基于spring cloud的微服务构建方法及spring cloud微服务架构 |
CN111221653A (zh) * | 2020-01-06 | 2020-06-02 | 中国银联股份有限公司 | 一种服务处理方法、装置及计算机可读存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114866617A (zh) * | 2022-04-28 | 2022-08-05 | 济南浪潮数据技术有限公司 | 一种微服务请求处理方法、装置、设备及介质 |
CN115118767A (zh) * | 2022-06-22 | 2022-09-27 | 中国银行股份有限公司 | 一种可定制化的单元化路由组件的实现方法、装置及设备 |
CN115118767B (zh) * | 2022-06-22 | 2024-03-01 | 中国银行股份有限公司 | 一种可定制化的单元化路由组件的实现方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114363233B (zh) | 2023-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11258667B2 (en) | Network management method and related device | |
CN107948135B (zh) | 一种支持多种api协议的数据处理方法及装置 | |
WO2017185961A1 (zh) | 一种服务发现的处理方法及装置 | |
CN111182089B (zh) | 容器集群系统和访问大数据组件的方法、装置及服务器 | |
CN109981716B (zh) | 一种微服务调用方法及装置 | |
CN107528862B (zh) | 域名解析的方法及装置 | |
CN112055091B (zh) | 车载微服务架构、车载模块的通信方法和装置 | |
CN111913818A (zh) | 一种确定服务间依赖关系的方法及相关装置 | |
CN114363233B (zh) | 一种分组路由方法、装置、电子设备及存储介质 | |
CN113141405B (zh) | 服务访问方法、中间件系统、电子设备和存储介质 | |
CN113434249A (zh) | 镜像同步方法、装置、docker主机及存储介质 | |
CN113067875A (zh) | 基于微服务网关动态流控的访问方法和装置以及设备 | |
CN112433863A (zh) | 微服务调用方法、装置、终端设备以及存储介质 | |
CN114172966A (zh) | 单元化架构下的服务调用方法、服务处理方法及装置 | |
CN117591294A (zh) | 服务动态负载访问方法、装置、物联网平台及介质 | |
CN112751935A (zh) | 请求处理方法、装置、电子设备及存储介质 | |
CN110365743B (zh) | 一种基于Zookeeper实现的支持多种可自定义负载算法的负载均衡器实现方法 | |
CN110545328A (zh) | 非入侵式服务功能扩展增强方法、装置及服务器 | |
CN111651469B (zh) | 一种管理区块链系统合约的方法和装置 | |
CN114356456A (zh) | 业务处理方法、装置、存储介质和电子设备 | |
CN113296911B (zh) | 集群调用方法、集群调用装置、电子设备及可读存储介质 | |
CN115134373A (zh) | 数据同步方法、装置、存储介质及电子设备 | |
CN114048028A (zh) | 服务调用方法、装置、存储介质和电子设备 | |
CN113485758A (zh) | 微服务发布方法、装置及电子设备、存储介质 | |
CN113986955B (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 |