CN112333096A - 一种微服务流量调度方法及相关组件 - Google Patents
一种微服务流量调度方法及相关组件 Download PDFInfo
- Publication number
- CN112333096A CN112333096A CN202011111560.6A CN202011111560A CN112333096A CN 112333096 A CN112333096 A CN 112333096A CN 202011111560 A CN202011111560 A CN 202011111560A CN 112333096 A CN112333096 A CN 112333096A
- Authority
- CN
- China
- Prior art keywords
- service
- micro
- routing
- request
- services
- 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.)
- Pending
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/30—Routing of multiclass traffic
-
- 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/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种微服务流量调度方法,该方法通过根据预设的服务级属性的流量调度配置确定服务请求中服务对应的微服务,实现流量调度,通过不同的流量调度配置实现不同形式的流量调度,并调用路由资源文件根据预设的路由匹配规则调用所述目的服务匹配的路由实现对于服务请求的处理,该方法中以基础设施的方式提供给用户非侵入的流量调度能力,使用户可以自主地控制服务之间的流量调用过程,同时代码中完全不用嵌入任何流量调度的逻辑,通过流量调度配置步骤,就可以实现这些流量调度能力,为应用组件的优化管理手段提供了有效的支撑。本申请还提供了一种微服务流量调度设备、路由代理装置及一种可读存储介质,具有上述有益效果。
Description
技术领域
本申请涉及计算机软件技术领域,特别涉及一种微服务流量调度方法、设备、路由代理装置及一种可读存储介质。
背景技术
随着越来越多的应用迁移到云上,原来的单个应用拆分为许多分散的微服务,应用的运行需要微服务之间的调用,一旦某个过程出错(组件越多,出错的概率也就越大),就需要花费大量的时间排查和处理;另外,对于已经上线的稳定应用,有时候我们需要通过精细化的运营手段(比如可以通过AB测试来实现)来获得用户数量的增长或者优化用户体验;在确定已经上线的应用的待优化点后,需要对于应用组件进行升级,而在应用组件的升级过程中,很多情况是同时存在不同的版本以测试验证哪个版本更好(比如执行金丝雀发布),如果版本升级了API可能还需要自动地控制发布期间不同版本访问不同的地址。对于上述这些执行过程都需要智能的流量控制机制,即对于所有微服务组件进行数据处理请求的数量控制。
目前对于微服务的流量控制是相关技术人员采用ingress(用于管理对集群中的服务的外部访问的API对象的虚拟主机)和nginx(一种代理服务器)针对待流量控制的微服务进行流量规则设置实现流量分发,以控制流向该微服务组件的数据请求的数量。而该种方法需要针对每个微服务组件进行规则设置,在规则设置时非常麻烦,特别是批量更改多个服务,面对各种svc(Switching Virtual Circuit交换虚拟电路)和path(设备可执行文件的搜索路径)只能手动维护,无法实现批量更改,而且这些手动配置不够灵活和安全,同时对于项目的测试和上线平添了很多风险,通过这种方式实现AB测试、金丝雀发布和流量分割等应用组件的优化管理手段时极有可能需要额外的开发,另外这些相似的功能如果每个组件都实现一遍是非常冗余的。
因此,如何简化应用组件的优化管理手段的实现,提升系统应用的可靠性以及稳定性,是本领域技术人员急需解决的问题。
发明内容
本申请的目的是提供微服务流量调度方法,该方法可以简化应用组件的优化管理手段的实现,提升系统应用的可靠性以及稳定性;本申请的另一目的是提供微服务流量调度设备、路由代理装置及一种可读存储介质。
为解决上述技术问题,本申请提供一种微服务流量调度方法,包括:
路由代理接收到服务请求后,识别所述服务请求中的请求信息;
确定所述请求信息对应的服务;
根据预设的服务级属性的流量调度配置确定所述服务对应的微服务,作为目的服务;
调用路由资源文件根据预设的路由匹配规则调用所述目的服务匹配的路由处理所述服务请求。
可选地,在所述路由代理接收到服务请求之前,还包括:
确定所有待调用的微服务组件,并将所述微服务组件作为目的服务;
为各所述目的服务添加对应的查找匹配信息;
配置各所述目的服务对应的路由信息,生成路由资源文件。
可选地,为各所述目的服务添加对应的查找匹配信息,包括:
配置所述目的服务对应类型资源的名称以及对应路由规则的优先级;
通过标签指定所述目的服务的版本信息。
可选地,所述微服务流量调度方法还包括:为同一服务项目下不同服务版本的目的服务对应的所述标签设置路由权重;
则相应地,根据预设的服务级属性的流量调度配置确定所述服务对应的微服务,作为目的服务,包括:
确定用于实现所述服务的微服务,作为初选微服务;
确定各所述初选微服务的标签对应的路由权重;
按照所述路由权重的比例确定当前待调度的微服务,作为目的服务。
可选地,所述微服务流量调度方法还包括:
当接收到微服务故障注入测试请求后,确定待注入故障的目的服务;
根据待注入的故障类型对所述目的服务的响应时间以及所述路由权重进行参数设置;
根据设置后的所述响应时间以及所述路由权重对所述服务请求进行微服务分配。
可选地,所述微服务流量调度方法还包括:
定义Mixer模板;
基于所述Mixer模板创建限流适配器;
在所述限流适配器中创建限流规则;
在所述限流适配器中定义达到限流条件后的反馈信息;
将所述限流规则绑定至对应的微服务组件;
调用所述限流适配器监控数据流量并进行流量限制处理。
可选地,所述微服务流量调度方法还包括:
为所述路由资源文件设置外部访问端口;
则相应地,调用路由资源文件根据预设的路由匹配规则调用所述目的服务匹配的路由处理所述服务请求,包括:
当所述服务请求为系统外部的访问请求时,通过所述外部访问接口调用路由资源文件根据预设的路由匹配规则调用所述目的服务匹配的路由处理所述服务请求。
本申请还提供了一种路由代理装置,该装置包括:
请求识别单元,用于接收到服务请求后,识别所述服务请求中的请求信息;
服务确定单元,用于确定所述请求信息对应的服务;
流量调度单元,用于根据预设的服务级属性的流量调度配置确定所述服务对应的微服务,作为目的服务;
路由调用单元,用于调用路由资源文件根据预设的路由匹配规则调用所述目的服务匹配的路由处理所述服务请求。
本申请还提供了一种微服务流量调度设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现所述的微服务流量调度方法的步骤。
本申请还提供了一种可读存储介质,所述可读存储介质上存储有程序,所述程序被处理器执行时实现所述的微服务流量调度方法的步骤。
本申请所提供的微服务流量调度方法中通过根据预设的服务级属性的流量调度配置确定服务请求中服务对应的微服务,实现流量调度,通过不同的流量调度配置实现不同形式的流量调度,并调用路由资源文件根据预设的路由匹配规则调用目的服务匹配的路由实现对于服务请求的处理,该方法中以基础设施的方式提供给用户非侵入的流量调度能力,使用户可以自主地控制服务之间的流量调用过程,开发者可以使用自己喜欢的任何语言和框架进行业务开发而不用关心服务调用的路由规则、负载均衡、熔断、超时策略、重试、限流、故障注入、流量镜像等的实现,使开发者专注于自己的业务而无须关注服务的流量管理,同时代码中完全不用嵌入任何流量调度的逻辑,通过流量调度配置步骤,就可以实现这些流量调度能力,为蓝绿发布、AB测试和金丝雀发布等提供了有效的支撑。
本申请还提供了一种微服务流量调度设备、路由代理装置及一种可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种微服务流量调度方法的流程图;
图2为本申请实施例提供的一种路由代理装置的结构框图;
图3为本申请实施例提供的一种微服务流量调度设备的结构示意图。
具体实施方式
本申请的核心是提供微服务流量调度方法,该方法可以简化应用组件的优化管理手段的实现,提升系统应用的可靠性以及稳定性;本申请的另一核心是提供微服务流量调度设备、路由代理装置及一种可读存储介质。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本实施例提供的一种微服务流量调度方法的流程图,该方法主要包括以下步骤:
步骤s110、路由代理接收到服务请求后,识别服务请求中的请求信息;
服务请求为用户发起的请求,比如查单据、上传数据等。服务请求发送至路由代理,由路由代理负责对于服务请求的响应调度。
路由代理为预先配置的用于实现流量导向的设备,即根据设置的路由规则将流量导向同一应用的不同版本或者不同的应用中去,比如实现来源自service-1服务的请求被导向a服务的版本1、来源自service-2服务的请求被导向a服务的版本2,亦或是要根据http请求实现A类型浏览器的用户流量被导向应用1、B类型浏览器的用户流量被导向应用2,这里可以分别为这些不同的来源定义不同的RouteRule资源。
路由代理接收到服务请求后,首先识别请求信息,请求信息即剔除服务请求的无用信息后指示服务目的的信息,比如查询单据A,上传数据B等。本实施例中对于请求信息的识别过程的具体实现步骤不做限定,可以参照相关技术的介绍,在此不再赘述。
步骤s120、确定请求信息对应的服务;
每种用户请求下对应的用于响应该请求的服务种类不同,比如请求信息为上传数据B时,则需要调用的服务为上传服务,请求信息为查询单据时,则需要调用的服务为查询服务,需要确定请求信息对应响应的服务,以便于进一步根据实际调度的需要确定该服务下的具体服务版本以及微服务项目。
而具体地确定请求信息对应的服务的实现方式本实施例中不做限定,可以参照相关技术的介绍,在此不再赘述。
步骤s130、根据预设的服务级属性的流量调度配置确定服务对应的微服务,作为目的服务;
比如可以实现搜索功能的应用包括搜索引擎1,搜索引擎2,可能搜索引擎1下还进一步包含两个服务版本等,当需要实现搜索服务时需要确定具体调用哪种应用下的哪个版本作为目的应用,而这一目标应用的选择确定过程需要根据预设的服务级属性的流量调度配置来实现。而具体的服务级属性的流量调度配置中包含的具体调度设置本实施例中不做限定,可以根据实际使用的需要进行相应设定。比如在在浏览器1与浏览器2中需要分配大流量至浏览器1,以实现对于浏览器1的功能测试,则可以将流量调度倾向浏览器1.另外,本实施例中对于根据流量调度配置确定微服务的实现方式不做限定,比如可以通过对各微服务进行权重设置,在选择时根据权重比例进行微服务的挑选,也可以通过设置熔断、设置限流等方式,可以根据不同测试场景配置不同的规则,本实施例中对此不再赘述。
步骤s140、调用路由资源文件根据预设的路由匹配规则调用目的服务匹配的路由处理服务请求。
其中,路由资源文件为预先创建的RouteRule类型的以各微服务组件作为目的服务,创建的用于调用各目的服务的路由资源文件。通过路由资源文件可以获取经过流量调度确定的目的服务对应的路由,通过该路由可以实现对于目的服务的调度,以便控制调用该目的服务处理该服务请求。
本实施例中对于路由资源文件的生成方式不做限定,可以根据实际路由调用所需的信息类型进行路由信息的配置。同时服务请求的具体处理过程本实施例中也不做限定,可以参照相关技术的介绍,在此不再赘述。
进一步地,为方便系统外部对于路由资源文件的调用,实现系统外部微服务流量的调度,在创建完成路由资源文件后,可以进一步执行以下步骤:为路由资源文件设置外部访问端口;则相应地,调用路由资源文件根据预设的路由匹配规则调用目的服务匹配的路由处理服务请求,包括:当服务请求为系统外部的访问请求时,通过外部访问接口调用路由资源文件根据预设的路由匹配规则调用目的服务匹配的路由处理服务请求。
绑定了istio的服务需要配置egress(出口)来实现系统外部访问,在该步骤中创建EgressRule类型资源文件,分别定义外部的目标destination service和端口ports,其中外部目标的service可设置为一组CIDR或者一个域名(也可以多个域名)。当然,也可以不执行上述外部接收创建以及调用的步骤,本实施例中对此不做限定。
基于上述介绍,本实施例提供的微服务流量调度方法中通过根据预设的服务级属性的流量调度配置确定服务请求中服务对应的微服务,实现流量调度,通过不同的流量调度配置实现不同形式的流量调度,并调用路由资源文件根据预设的路由匹配规则调用目的服务匹配的路由实现对于服务请求的处理,该方法中以基础设施的方式提供给用户非侵入的流量调度能力,使用户可以自主地控制服务之间的流量调用过程,开发者可以使用自己喜欢的任何语言和框架进行业务开发而不用关心服务调用的路由规则、负载均衡、熔断、超时策略、重试、限流、故障注入、流量镜像等的实现,使开发者专注于自己的业务而无须关注服务的流量管理,同时代码中完全不用嵌入任何流量调度的逻辑,通过流量调度配置步骤,就可以实现这些流量调度能力,为蓝绿发布、AB测试和金丝雀发布等提供了有效的支撑。
上述实施例中对于路由资源间的生成方式不做限定,本实施例中介绍一种根据实际路由调用所需的信息类型进行路由信息的配置的实现方式。具体地,一种实现方式如下,在路由代理接收到服务请求之前,可以进一步执行以下步骤:
(1)确定所有待调用的微服务组件,并将微服务组件作为目的服务;
(2)为各目的服务添加对应的查找匹配信息;
查找匹配信息为用于检索目的服务的信息,本实施例中对于查找匹配信息中具体包含的信息项不做限定,可以根据实际微服务查找以及调用的需要进行设置。可选地,一种为各目的服务添加对应的查找匹配信息的具体实现过程如下,具体包括以下两个步骤:
(2.1)配置目的服务对应类型资源的名称以及对应路由规则的优先级;
(2.2)通过标签指定目的服务的版本信息。
首先配置目的服务destination,也就是各种微服务,对应Service类型资源的名称,也就是就是微服务对应Service名称,比如上传文件、下载文件、浏览内网新闻等;其次配置每个微服务对应路由规则的优先级precedence(优先级为大于0的整数,数值越小优先级越高);最后可以配置路由route信息,通过labels标签指定路由目的服务的版本。
本实施例中仅以上述查找匹配信息的配置方式进行介绍,其它实现方式均可参照本实施例的介绍,在此不再赘述。
(3)配置各目的服务对应的路由信息,生成路由资源文件。
而进一步地,基于上述查找匹配信息的配置方式,可以进一步执行为同一服务项目下不同服务版本的目的服务对应的标签设置路由权重的步骤,则相应地,根据预设的服务级属性的流量调度配置确定服务对应的微服务,作为目的服务的过程具体可以包括以下步骤:
(1)确定用于实现服务的微服务,作为初选微服务;
(2)确定各初选微服务的标签对应的路由权重;
(3)按照路由权重的比例确定当前待调度的微服务,作为目的服务。
为了实现复杂的AB测试或者金丝雀发布等应用组件的优化管理手段,本实施例中介绍一种通过设置路由的权重信息进行流量分割的方案。具体地,可以在RouteRule类型的资源文件中通过配置Route的权重weight信息实现流量分割。
一个标签信息对应设置一个路由权重(以后简称为“权重”),所有路由规则的权重值之和为100。例如设置30%导向版本1的流量、70%导向版本2的流量,此处为labels1(版本1的标签)的weight设置值为30,labels2(版本2的标签)的weight设置为70,当然此处也可以分别设置0和100以让流量全部导向其中的1个版本等,具体的权重设置可以根据实际应用场景的需要进行设定,本实施例中对此不做限定。确定用于实现服务的微服务,作为初选微服务后,根据各初选微服务的标签对应的路由权重所占的比例确定当前待调度的微服务,比如30%导向版本1的流量、70%导向版本2的流量,则将三成的流量分配至版本1,七成的流量分配至版本2。
为验证测试应用组件功能出现潜在故障的时候其本身的容错机制是否正常,需要进行故障注入测试以达到规避故障来保证组件功能的可用性。本实施例中进一步介绍一种故障注入的实现方式,以应对不同的应用流量调度需求。
可选地,基于上述实施例,可以进一步执行以下步骤:
(1)当接收到微服务故障注入测试请求后,确定待注入故障的目的服务;
(2)根据待注入的故障类型对目的服务的响应时间以及路由权重进行参数设置;
(3)根据设置后的响应时间以及路由权重对服务请求进行微服务分配。
继续使用RouteRule类型的路由资源资源文件,确认要注入故障的destination(目的服务),通过设置httpReqTimeout和httpFault可分别通过设置响应时间和请求包的比例(即路由权重)来实现对请求设置请求超时(abort)和延迟响应(delay)的模拟,配置完成并应用之后对应服务的虚拟服务virtualservice中即为http的fault对象绑定了abort和delay配置,可以设置httpReqRetries来配置请求失败的重试次数。
通过上述方式可以实现对于微服务的故障注入测试,以保障微服务的正常运行。
进一步地,当应用集群的某个组件发生异常短时间无法修复,可以暂时停止调用以实现熔断功能。熔断功能的实现可以通过创建DestinationPolicy资源文件,配置并确认(已配置路由规则的)目标服务destination,配置熔断器circuitbreaker,通过配置simpleCb的参数设置熔断规则(maxConnections、httpMaxPendingRequests、httpDetectionInterval…)。
应用组件运行期间,一些组件如果达到了需要限制流量的阈值,就需要采取一些措施(延迟、拒绝或者部分拒绝处理等)以完成限制流量的目的。为满足上述使用需求,本实施例中进一步提出了一种限流设置的实现方式,以提升系统运行的稳定性。可选地,在上述实施例的基础上,可以进一步执行以下步骤:
(1)定义Mixer模板;
当请求到达Mesh中的服务对Mixer进行调用,Mixer都需要调用一个或多个适配器。该步骤为创建memquota限流适配器的前提条件,创建一个quota类型的模板资源文件,通过范围属性dimensions定义memquota适配器需要的dimension数据,生成Mixer模板。
(2)基于Mixer模板创建限流适配器(memquota Handler);
创建memquota(限流适配)类型资源文件用于定义限流适配器的限流设置,在限额quotas属性中配置上一步创建的Mixer模板信息,然后配置限流信息,即当多长时间以内qps达到多少数量之后被限流,这里可以配置缺省限值maxAmount(qps)、计时信息validDuration(s),此处通过设置重新overrides参数来进行条件限流,通过dimensions配置来源和目的服务,然后再配置限值maxAmount和计时validDuration。本实施例中仅以上述创建方式为例进行介绍,其它参数类型的设置以及实现方式均可参照上述介绍,在此不再赘述。
(3)在限流适配器中创建限流规则;
限流规则用来绑定限流适配器和引用的Mixer模板,创建rule类型资源文件,作为限流规则,通过handler属性配置限流适配器,在实例属性instances中配置引用的Mixer模板。
(4)在限流适配器中定义达到限流条件后的反馈信息;
本步骤主要用于对配额消费过程的行为进行定义,即定义每次请求消耗的qps数量和达到限流条件后需要返回的信息。
可以通过创建QuotaSpec类型的资源文件,在规则rules属性中分别配置quotas的charg和quota来定义每次请求消耗的qps数量和达到限流条件后需要返回的信息。
(5)将限流规则绑定至对应的微服务组件;
用于将配额消费规则绑定到具体的服务,创建QuotaSpecBinding类型的资源文件,在限额描述quotaSpecs中指定限额规格quotaSpec、作用目标namespace,同时在services的name配置中指定要作用的服务。
(6)调用限流适配器监控数据流量并进行流量限制处理。
以上步骤为限流适配器的创建以及功能实现步骤,基于上述步骤中建立的限流适配器即可实现对于流量的限制以及处理。在路由资源文件创建后,即可通过上述步骤创建限流适配器,在创建完成后即可调用该限流适配器实现流量限制。
基于上述实施例,在微服务组件的版本更新后,为实现与新版本的微服务组件的功能调用以及测试,可以进一步复制原有服务接收的流量镜像一份发往新版本的服务。在需要设置流量镜像的虚拟服务VirtualService资源文件中已绑定了默认的路由目服务和版本及权重信息,在其后添加mirror的目标服务host和版本subset信息,即可将原服务的请求信息发送到配置的mirror镜像服务,同时可以设置转发流量的百分比mirror_percent参数来配置部分流量的镜像请求。
需要说明的是,本申请介绍的上述实现方法是在已安装Istio(一种由谷歌、IBM与Lyft共同开发的开源项目)服务网格(用来描述组成这些应用程序的微服务网络以及它们之间的交互)的Kubernetes(一个开源的,用于管理云平台中多个主机上的容器化的应用)环境的下的实现步骤的介绍,步骤中所有资源文件可以为yml文件,且默认环境中已有在运行的应用负载和暴露的service服务,应用负载pod已注入sidecar(istio-proxy)服务。
请参考图2,图2为本实施例提供的路由代理装置的结构框图;该装置主要包括:请求识别单元110、服务确定单元120、流量调度单元130以及路由调用单元140。本实施例提供的路由代理装置可与上述微服务流量调度方法相互对照。
其中,请求识别单元110主要用于接收到服务请求后,识别服务请求中的请求信息;
服务确定单元120主要用于确定请求信息对应的服务;
流量调度单元130主要用于根据预设的服务级属性的流量调度配置确定服务对应的微服务,作为目的服务;
路由调用单元140主要用于调用路由资源文件根据预设的路由匹配规则调用目的服务匹配的路由处理服务请求。
本实施例提供一种微服务流量调度设备,主要包括:存储器以及处理器。
其中,存储器用于存储程序;
处理器用于执行程序时实现如上述实施例介绍的微服务流量调度方法的步骤,具体可参照上述微服务流量调度方法的介绍。
请参考图3,为本实施例提供的微服务流量调度设备的结构示意图,该微服务流量调度设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储器332通信,在微服务流量调度设备301上执行存储介质330中的一系列指令操作。
微服务流量调度设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上面图1所描述的微服务流量调度方法中的步骤可以由本实施例介绍的微服务流量调度设备的结构实现。
本实施例公开一种可读存储介质,其上存储有程序,程序被处理器执行时实现如上述实施例介绍的微服务流量调度方法的步骤,具体可参照上述实施例中对微服务流量调度方法的介绍。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的微服务流量调度方法、设备、路由代理装置及可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (10)
1.一种微服务流量调度方法,其特征在于,该方法包括:
路由代理接收到服务请求后,识别所述服务请求中的请求信息;
确定所述请求信息对应的服务;
根据预设的服务级属性的流量调度配置确定所述服务对应的微服务,作为目的服务;
调用路由资源文件根据预设的路由匹配规则调用所述目的服务匹配的路由处理所述服务请求。
2.如权利要求1所述的微服务流量调度方法,其特征在于,在所述路由代理接收到服务请求之前,还包括:
确定所有待调用的微服务组件,并将所述微服务组件作为目的服务;
为各所述目的服务添加对应的查找匹配信息;
配置各所述目的服务对应的路由信息,生成路由资源文件。
3.如权利要求2所述的微服务流量调度方法,其特征在于,为各所述目的服务添加对应的查找匹配信息,包括:
配置所述目的服务对应类型资源的名称以及对应路由规则的优先级;
通过标签指定所述目的服务的版本信息。
4.如权利要求3所述的微服务流量调度方法,其特征在于,还包括:为同一服务项目下不同服务版本的目的服务对应的所述标签设置路由权重;
则相应地,根据预设的服务级属性的流量调度配置确定所述服务对应的微服务,作为目的服务,包括:
确定用于实现所述服务的微服务,作为初选微服务;
确定各所述初选微服务的标签对应的路由权重;
按照所述路由权重的比例确定当前待调度的微服务,作为目的服务。
5.如权利要求4所述的微服务流量调度方法,其特征在于,还包括:
当接收到微服务故障注入测试请求后,确定待注入故障的目的服务;
根据待注入的故障类型对所述目的服务的响应时间以及所述路由权重进行参数设置;
根据设置后的所述响应时间以及所述路由权重对所述服务请求进行微服务分配。
6.如权利要求1所述的微服务流量调度方法,其特征在于,还包括:
定义Mixer模板;
基于所述Mixer模板创建限流适配器;
在所述限流适配器中创建限流规则;
在所述限流适配器中定义达到限流条件后的反馈信息;
将所述限流规则绑定至对应的微服务组件;
调用所述限流适配器监控数据流量并进行流量限制处理。
7.如权利要求1所述的微服务流量调度方法,其特征在于,还包括:
为所述路由资源文件设置外部访问端口;
则相应地,调用路由资源文件根据预设的路由匹配规则调用所述目的服务匹配的路由处理所述服务请求,包括:
当所述服务请求为系统外部的访问请求时,通过所述外部访问接口调用路由资源文件根据预设的路由匹配规则调用所述目的服务匹配的路由处理所述服务请求。
8.一种路由代理装置,其特征在于,该装置包括:
请求识别单元,用于接收到服务请求后,识别所述服务请求中的请求信息;
服务确定单元,用于确定所述请求信息对应的服务;
流量调度单元,用于根据预设的服务级属性的流量调度配置确定所述服务对应的微服务,作为目的服务;
路由调用单元,用于调用路由资源文件根据预设的路由匹配规则调用所述目的服务匹配的路由处理所述服务请求。
9.一种微服务流量调度设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的微服务流量调度方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有程序,所述程序被处理器执行时实现如权利要求1至7任一项所述的微服务流量调度方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011111560.6A CN112333096A (zh) | 2020-10-16 | 2020-10-16 | 一种微服务流量调度方法及相关组件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011111560.6A CN112333096A (zh) | 2020-10-16 | 2020-10-16 | 一种微服务流量调度方法及相关组件 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112333096A true CN112333096A (zh) | 2021-02-05 |
Family
ID=74313613
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011111560.6A Pending CN112333096A (zh) | 2020-10-16 | 2020-10-16 | 一种微服务流量调度方法及相关组件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112333096A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113055465A (zh) * | 2021-03-11 | 2021-06-29 | 南京大学 | 一种支持事务一致性的微服务动态更新方法 |
CN113220484A (zh) * | 2021-05-11 | 2021-08-06 | 上海安畅网络科技股份有限公司 | 一种微服务调用方法、装置、电子设备及存储介质 |
CN113268425A (zh) * | 2021-05-27 | 2021-08-17 | 东南大学 | 一种基于规则的微服务源文件预处理方法 |
CN113608751A (zh) * | 2021-08-04 | 2021-11-05 | 北京百度网讯科技有限公司 | 推理服务平台的运行方法、装置、设备及存储介质 |
CN113946831A (zh) * | 2021-10-18 | 2022-01-18 | 哈尔滨工业大学 | 一种基于微服务的跨平台新软件以及新系统安全风险分析方法、计算机及存储介质 |
CN114157717A (zh) * | 2021-11-05 | 2022-03-08 | 福建福诺移动通信技术有限公司 | 一种微服务动态限流的系统及方法 |
CN114265607A (zh) * | 2022-03-03 | 2022-04-01 | 杭州朗澈科技有限公司 | 一种灰度发布方法、系统、电子设备和存储介质 |
CN114579205A (zh) * | 2022-03-09 | 2022-06-03 | 平安普惠企业管理有限公司 | 资源请求处理方法、装置、电子设备及可读存储介质 |
CN115037617A (zh) * | 2022-05-16 | 2022-09-09 | 中国农业银行股份有限公司 | 一种dubbo服务治理的优化方法及装置 |
WO2023124314A1 (zh) * | 2021-12-31 | 2023-07-06 | 广东浪潮智慧计算技术有限公司 | 混合cpu架构设备的微服务测试方法、系统及相关装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106227611A (zh) * | 2016-07-26 | 2016-12-14 | 北京北森云计算股份有限公司 | 一种多语言云编译的动态微服务调用方法及装置 |
CN108427581A (zh) * | 2018-02-07 | 2018-08-21 | 平安普惠企业管理有限公司 | 系统微服务化方法及终端设备 |
CN110401696A (zh) * | 2019-06-18 | 2019-11-01 | 华为技术有限公司 | 一种去中心化处理的方法、通信代理、主机以及存储介质 |
US20190363973A1 (en) * | 2018-05-24 | 2019-11-28 | Quanta Computer Inc. | Micro server built-in switch uplink port backup mechanism |
CN111600930A (zh) * | 2020-04-09 | 2020-08-28 | 网宿科技股份有限公司 | 微服务请求的流量管理方法、装置、服务器及存储介质 |
-
2020
- 2020-10-16 CN CN202011111560.6A patent/CN112333096A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106227611A (zh) * | 2016-07-26 | 2016-12-14 | 北京北森云计算股份有限公司 | 一种多语言云编译的动态微服务调用方法及装置 |
CN108427581A (zh) * | 2018-02-07 | 2018-08-21 | 平安普惠企业管理有限公司 | 系统微服务化方法及终端设备 |
US20190363973A1 (en) * | 2018-05-24 | 2019-11-28 | Quanta Computer Inc. | Micro server built-in switch uplink port backup mechanism |
CN110401696A (zh) * | 2019-06-18 | 2019-11-01 | 华为技术有限公司 | 一种去中心化处理的方法、通信代理、主机以及存储介质 |
CN111600930A (zh) * | 2020-04-09 | 2020-08-28 | 网宿科技股份有限公司 | 微服务请求的流量管理方法、装置、服务器及存储介质 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113055465A (zh) * | 2021-03-11 | 2021-06-29 | 南京大学 | 一种支持事务一致性的微服务动态更新方法 |
CN113055465B (zh) * | 2021-03-11 | 2022-04-22 | 南京大学 | 一种支持事务一致性的微服务动态更新方法 |
WO2022188205A1 (zh) * | 2021-03-11 | 2022-09-15 | 南京大学 | 一种支持事务一致性的微服务动态更新方法 |
CN113220484A (zh) * | 2021-05-11 | 2021-08-06 | 上海安畅网络科技股份有限公司 | 一种微服务调用方法、装置、电子设备及存储介质 |
CN113268425A (zh) * | 2021-05-27 | 2021-08-17 | 东南大学 | 一种基于规则的微服务源文件预处理方法 |
CN113268425B (zh) * | 2021-05-27 | 2024-03-22 | 东南大学 | 一种基于规则的微服务源文件预处理方法 |
CN113608751A (zh) * | 2021-08-04 | 2021-11-05 | 北京百度网讯科技有限公司 | 推理服务平台的运行方法、装置、设备及存储介质 |
CN113608751B (zh) * | 2021-08-04 | 2023-04-07 | 北京百度网讯科技有限公司 | 推理服务平台的运行方法、装置、设备及存储介质 |
CN113946831A (zh) * | 2021-10-18 | 2022-01-18 | 哈尔滨工业大学 | 一种基于微服务的跨平台新软件以及新系统安全风险分析方法、计算机及存储介质 |
CN113946831B (zh) * | 2021-10-18 | 2024-04-05 | 哈尔滨工业大学 | 一种基于微服务的跨平台新软件以及新系统安全风险分析方法、计算机及存储介质 |
CN114157717A (zh) * | 2021-11-05 | 2022-03-08 | 福建福诺移动通信技术有限公司 | 一种微服务动态限流的系统及方法 |
CN114157717B (zh) * | 2021-11-05 | 2023-09-29 | 福建福诺移动通信技术有限公司 | 一种微服务动态限流的系统及方法 |
WO2023124314A1 (zh) * | 2021-12-31 | 2023-07-06 | 广东浪潮智慧计算技术有限公司 | 混合cpu架构设备的微服务测试方法、系统及相关装置 |
CN114265607A (zh) * | 2022-03-03 | 2022-04-01 | 杭州朗澈科技有限公司 | 一种灰度发布方法、系统、电子设备和存储介质 |
CN114579205A (zh) * | 2022-03-09 | 2022-06-03 | 平安普惠企业管理有限公司 | 资源请求处理方法、装置、电子设备及可读存储介质 |
CN115037617A (zh) * | 2022-05-16 | 2022-09-09 | 中国农业银行股份有限公司 | 一种dubbo服务治理的优化方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112333096A (zh) | 一种微服务流量调度方法及相关组件 | |
US20210406079A1 (en) | Persistent Non-Homogeneous Worker Pools | |
CN106537338B (zh) | 自扩展云 | |
JP6363796B2 (ja) | 動的コードデプロイメント及びバージョニング | |
US11252220B2 (en) | Distributed code execution involving a serverless computing infrastructure | |
CN110413288B (zh) | 应用部署方法、装置、服务器及存储介质 | |
US9652211B2 (en) | Policy management of deployment plans | |
US9645807B2 (en) | Automated deployment of a configured system into a computing environment | |
US11422844B1 (en) | Client-specified network interface configuration for serverless container management service | |
US10977167B2 (en) | Application monitoring with a decoupled monitoring tool | |
US20120047506A1 (en) | Resource abstraction via enabler and metadata | |
CN108683516A (zh) | 一种应用实例的升级方法、装置和系统 | |
US10996997B2 (en) | API-based service command invocation | |
US8650288B2 (en) | Runtime usage analysis for a distributed policy enforcement system | |
CN110959165A (zh) | 用于自动验证云服务代理系统中的要约的功能的技术 | |
US20210203714A1 (en) | System and method for identifying capabilities and limitations of an orchestration based application integration | |
US20220214931A1 (en) | System and method for exposing features of integration platform adapters as first-class actions in an orchestration template | |
US11178252B1 (en) | System and method for intelligent distribution of integration artifacts and runtime requests across geographic regions | |
CN113302901A (zh) | 使用基于模式的发现进行云应用程序和服务集成的方法及系统 | |
US11108638B1 (en) | Health monitoring of automatically deployed and managed network pipelines | |
EP3470983A1 (en) | Method, system and computer readable medium to allocate resources to at least one application | |
US11681585B2 (en) | Data migration for a shared database | |
CN110506257B (zh) | 在云服务代理系统中创建和分配集成连接器的方法 | |
CN116450165A (zh) | 一种快速搭建环境及部署程序的方法、系统、终端及存储介质 | |
CN115048187A (zh) | 一种基于Operator的pvc文件导入方法、设备及存储介质 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210205 |
|
RJ01 | Rejection of invention patent application after publication |