用于微服务的自适应断路器链制造技术

技术编号:21691482 阅读:25 留言:0更新日期:2019-07-24 16:12
本发明专利技术涉及用于微服务的自适应断路器链。一种用于配置微服务架构中的自适应断路器链的方法包括:从上游服务向所述服务中的目标服务发送请求,以及在所述上游服务的断路器中接收来自所述目标服务的断路器的响应,所述响应指示不能提供对所发送的请求的响应并包括元数据,所述元数据描述了所述目标服务的所述断路器从所述下游服务接收是提供对由所述上游服务发送的所述请求的响应所必需的、对所述目标服务的底层请求的响应的尝试。最后,如果所述元数据指示所述目标服务的所述断路器在接收对所述底层请求的响应中引起延迟,则所述方法包括从默认延迟模式改变由所述上游服务的所述断路器施加的延迟模式。

Adaptive Circuit Breaker Chain for Micro Services

【技术实现步骤摘要】
用于微服务的自适应断路器链
本专利技术涉及微服务领域,并且更具体地说,涉及微服务架构中的断路器利用。
技术介绍
微服务架构指将软件应用开发为一套可独立部署的小型模块化服务,其中每个服务作为一个独特的过程执行,并且通过定义明确的轻型机制进行通信以服务业务目标。每个模块化服务可以利用任何期望的通信协议与其它模块化服务通信,尽管通常情况下模块化服务利用轻型协议(例如具有包含Javascript对象表示法(JSON)的代表性状态传输(REST)的超文本传输协议(HTTP))彼此通信。微服务架构与单体架构形成对比。与微服务不同,单体应用具有单个自主单元的架构。在客户机-服务器模型中,服务器侧应用充当处理HTTP请求、执行逻辑、以及检索和更新底层数据存储中的数据的单体。但是,将如认识到的,在单体架构中,所有更改(即使对应用的最小部分的更改)都需要重建整个应用。同样,如果需要扩展单体应用的一部分,则导致需要扩展整个单体应用。相比之下,在微服务架构中,对服务的更改保持与该服务隔离,而不需要重建整个服务套件。此外,如果需要扩展微服务架构应用中的一个服务,则不需要扩展微服务架构应用中的所有服务。微服务架构还可以与面向服务的架构(SOA)形成对比。在SOA中,以高度协调的方式来组合组件的构成,从而需要使用高级应用编程接口(API),API适于在应用的一个或多个组件上协调整个操作。相比之下,在微服务架构中,由每个服务特有的对应简单接口公开每个服务的低级细节,并且服务之间的协调通过使用不复杂的通信管道发生,通过这些通信管道发出对服务的相应API的调用并且返回结果。使用高级API(这是SOA的特征),很难将小组件重新连接在一起,因为服务设计者已通过提供单个高级接口,移除了可以采取的许多接缝或选择。在微服务架构中,因为每个服务彼此独立,所以当通过通信链路向另一个服务发出方法调用时,调用服务允许一个时段,在该时段内调用服务期望来自被调用服务的响应。在该时段内的一次或多次尝试之后,“断路器”组件主动停止进一步尝试并且注意到被调用服务的不可用性。但是,可以想象以下情况:其中为了满足调用服务的请求,被调用服务本身必须变成又一个被调用服务的调用服务。如果被调用服务链中的被调用服务引起延迟,则每个被调用服务中的断路器执行适当断路的能力变得复杂并且容易出错。
技术实现思路
本专利技术的实施例解决关于微服务架构中的断路器的操作的本领域缺陷,并且提供用于微服务架构中的自适应断路器链的新颖和非显而易见的方法、系统和计算机程序产品。在本专利技术的一个实施例中,一种用于配置微服务架构中的自适应断路器链的方法包括:在微服务架构应用中的服务集合中的上游服务与所述微服务架构应用中的所述服务中的目标服务之间以及还在所述服务中的所述目标服务与所述微服务架构应用中的所述服务集合中的下游服务之间建立轻型通信链路。所述方法还包括:从所述上游服务向所述服务的所述目标服务发送请求,以及在所述上游服务的断路器中接收来自所述服务中的所述目标服务的断路器的响应,所述响应指示不能提供对所发送的请求的响应并且包括元数据,所述元数据描述了所述服务中的所述目标服务的所述断路器从所述服务中的所述下游服务接收是提供对由所述上游服务发送的所述请求的响应所必需的、对所述服务中的所述目标服务的底层请求的响应的尝试。最后,如果所述元数据指示所述服务中的所述目标服务的所述断路器在接收对所述底层请求的响应中引起延迟,则所述方法包括从默认延迟模式改变由所述上游服务的所述断路器施加的延迟模式。在该实施例的一个方面,所改变的延迟模式是在向所述服务中的所述目标服务重新发送所述请求之前,增加由所述上游服务的所述断路器施加的延迟的时间。在该实施例的另一个方面,所改变的延迟模式是所述上游服务的所述断路器向所述服务中的所述目标服务重新发送所述请求的尝试次数的变化。在该实施例的又一个方面,所改变的延迟模式是将所述服务中的所述目标服务标记为在由所述服务中的所述下游服务的不可用性的元数据指示的时间量内不可用。注意,所述上游服务与所述服务中的所述目标服务之间的所述轻型通信链路是HTTP/REST,所述元数据包括在从所述服务中的所述目标服务到所述上游服务的所述响应的HTTP标头中。但是,作为备选方案,所述元数据存储在能够由所述微服务架构应用的每个所述服务访问的中央储存库中。在本专利技术的另一个实施例中,一种微服务架构数据处理系统被配置用于微服务架构中的自适应断路器链。所述系统包括主机计算系统,其具有一个或多个计算机,每个计算机具有存储器和至少一个处理器。所述系统还包括多个服务,其被布置为形成在所述主机计算系统的所述存储器中执行的微服务架构应用,每个所述服务利用至少一个轻型通信链路与其它所述服务通信。最后,每个所述服务包括断路器。所述断路器包括程序代码,所述程序代码在由所述处理器执行期间能够:从所述服务中作为上游服务的对应服务向所述服务中的目标服务发送请求;从所述服务中的所述目标服务的断路器接收响应,所述响应指示不能提供对所发送的请求的响应并且包括元数据,所述元数据描述了所述服务中的所述目标服务的所述断路器从所述服务中的所述下游服务接收是提供对由所述上游服务发送的所述请求的响应所必需的、对所述服务中的所述目标服务的底层请求的响应的尝试;以及如果所述元数据指示所述服务中的所述目标服务的所述断路器在接收对所述底层请求的响应中引起延迟,则从默认延迟模式改变由所述上游服务的所述断路器施加的延迟模式。本专利技术的额外方面将在下面的说明书中部分地给出,并且部分地将从说明书中显而易见,或者可以通过本专利技术的实践来学习。借助于在所附权利要求中具体指出的元素和组合,将实现和获得本专利技术的各方面。要理解,以上一般描述和以下详细描述两者都仅是示例性和解释性的,而不是对要求保护的本专利技术的限制。附图说明结合在本说明书中并构成本说明书的一部分的附图示出本专利技术的实施例,并且与说明书一起用于解释本专利技术的原理。在此示出的实施例当前是优选的,但是要理解,本专利技术并不限于所示的精确布置和工具,这些附图是:图1是用于配置微服务架构中的自适应断路器链的过程的图;图2是被配置用于微服务架构中的自适应断路器链的数据处理系统的示意图;以及图3是示出用于配置微服务架构中的自适应断路器链的过程的流程图。具体实施方式本专利技术的实施例提供微服务架构中的自适应断路器链。根据本专利技术的一个实施例,微服务架构中的不同服务适于分别包括不同的断路器。服务中的对应服务内的每个不同的断路器包括计算机程序代码,该计算机程序代码被配置为向上游调用服务的断路器报告不能向上游调用服务提供对来自上游调用服务的请求的响应,这是由于下游服务不能响应服务中的对应服务的请求(该响应是响应来自上游调用服务的请求所必需的)。同样,程序代码能够提供具有报告的元数据,该报告代表服务中的对应服务尝试的重试次数。因此,上游调用服务的断路器的程序代码能够修改用于管理来自上游调用服务的请求的重试以考虑元数据的过程。在进一步例示中,图1以图形方式示出用于配置微服务架构中的自适应断路器链的过程。如图1中所示,微服务架构应用100包括不同的服务110、150、180,它们通过轻型通信链路140以通信方式彼此链接。具体地说,上游服务110调用不同的操作120A本文档来自技高网
...

【技术保护点】
1.一种用于配置微服务架构中的自适应断路器链的方法,所述方法包括:在微服务架构应用中的服务集合中的上游服务与所述微服务架构应用中的所述服务中的目标服务之间以及还在所述服务中的所述目标服务与所述微服务架构应用中的所述服务集合中的下游服务之间建立轻型通信链路;从所述上游服务向所述服务中的所述目标服务发送请求;在所述上游服务的断路器中接收来自所述服务中的所述目标服务的断路器的响应,所述响应指示不能提供对所发送的请求的响应并且包括元数据,所述元数据描述了所述服务中的所述目标服务的所述断路器从所述服务中的所述下游服务接收是提供对由所述上游服务发送的所述请求的响应所必需的、对所述服务中的所述目标服务的底层请求的响应的尝试;以及如果所述元数据指示所述服务中的所述目标服务的所述断路器在接收对所述底层请求的响应中引起延迟,则从默认延迟模式改变由所述上游服务的所述断路器施加的延迟模式。

【技术特征摘要】
2018.01.14 US 15/8709741.一种用于配置微服务架构中的自适应断路器链的方法,所述方法包括:在微服务架构应用中的服务集合中的上游服务与所述微服务架构应用中的所述服务中的目标服务之间以及还在所述服务中的所述目标服务与所述微服务架构应用中的所述服务集合中的下游服务之间建立轻型通信链路;从所述上游服务向所述服务中的所述目标服务发送请求;在所述上游服务的断路器中接收来自所述服务中的所述目标服务的断路器的响应,所述响应指示不能提供对所发送的请求的响应并且包括元数据,所述元数据描述了所述服务中的所述目标服务的所述断路器从所述服务中的所述下游服务接收是提供对由所述上游服务发送的所述请求的响应所必需的、对所述服务中的所述目标服务的底层请求的响应的尝试;以及如果所述元数据指示所述服务中的所述目标服务的所述断路器在接收对所述底层请求的响应中引起延迟,则从默认延迟模式改变由所述上游服务的所述断路器施加的延迟模式。2.根据权利要求1所述的方法,其中,所改变的延迟模式是在向所述服务中的所述目标服务重新发送所述请求之前,增加由所述上游服务的所述断路器施加的延迟的时间。3.根据权利要求1所述的方法,其中,所改变的延迟模式是所述上游服务的所述断路器向所述服务中的所述目标服务重新发送所述请求的尝试次数的变化。4.根据权利要求1所述的方法,其中,所改变的延迟模式是将所述服务中的所述目标服务标记为在由所述服务中的所述下游服务的不可用性的元数据指示的时间量内不可用。5.根据权利要求1所述的方法,其中,所述上游服务与所述服务中的所述目标服务之间的所述轻型通信链路是具有代表性状态传输REST的超文本传输协议HTTP,其中,所述元数据包括在从所述服务中的所述目标服务到所述上游服务的所述响应的HTTP标头中。6.根据权利要求1所述的方法,其中,所述元数据存储在能够由所述微服务架构应用的每个所述服务访问的中央储存库中。7.一种微服务架构数据处理系统,被配置用于微服务架构中的自适应断路器链,所述系统包括:主机计算系统,其包括一个或多个计算机,每个计算机具有存储器和至少一个处理器;多个服务,其被布置为形成在所述主机计算系统...

【专利技术属性】
技术研发人员:A·爱德华兹M·罗斯
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1