用于微服务系统的方法和系统跟踪控制器与流程
- 国知局
- 2024-10-09 16:10:33
本发明大体上涉及云计算和分布式系统(例如分布式软件系统(distributedsoftware system,dss))领域;更具体地,涉及一种用于可扩展性分析和处理可扩展性问题的方法,以及一种用于微服务系统的系统跟踪控制器。
背景技术:
1、通常,可扩展性是分布式软件系统最重要的方面之一。可扩展的系统能够适应和处理由需求变化(请求特征)引起的不断增加的工作负载。可扩展性是分布式系统(如微服务应用)调整后端基础设施可用的资源以响应不断变化的需求的能力。通常,随着需求的增加,分布式系统的每个组件需要与整个系统一起扩展,以保证服务质量(quality ofservice,qos)不会下降。可扩展性限制的根本原因通常与资源瓶颈相关联。由于需求通常表示为在给定时间间隔内施加到系统的工作负载,因此需求可以量化为向系统发送的每秒请求数(request per second,rps)。当系统可扩展时,无论rps如何,它都会维持其服务质量(例如,平均响应时间)。如果需求增加50%,则平均响应时间最好保持不变。
2、实际上,系统在高需求下可能会饱和,并且由于资源是有限的,资源瓶颈会限制可扩展性。通常,随着需求的增加,资源会饱和,因此服务质量(quality of service,qos)会降低到协定水平以下。用户会开始接收到错误消息,遇到页面响应缓慢和超时。此外,随着云原生应用和技术的激增和进步,越来越需要对微服务应用的可扩展性分析。但是,由于大多数方案都是为了分析传统的分布式、并行系统而构建的,因此在分析规模和复杂性都要大得多的微服务应用的可扩展性时,这些方案具有局限性。由于其复杂性,微服务应用需要可扩展性分析工具能够考虑以下三个重要约束:(1)现网流量:在可以处理数十万并发请求的应用中,通常无法通过模拟需求来进行可扩展性分析,因此需要使用现网流量来代替;(2)混合请求:需求通过在本质上是多维的请求来表征,例如,需求可以通过rps、数据量传输、可用区和处理参数(argument)来表征;(3)复杂的后端:在微服务系统中,为了处理请求而选择和调用的资源是不可先验获知的。选择是动态的,因此很难或有时不可能确定资源瓶颈。
3、现有的可扩展性分析工具和系统有一些限制。例如,现有的可扩展性分析工具和系统通常需要模拟需求,这并不总是可行的,而且它们通常无法在观察可扩展性问题之前预测这些可扩展性问题。另外,现有的可扩展性分析工具和系统无法将用户请求与处理请求的后端系统的组件关联起来,它们无法精确地确定构成特定请求类别的瓶颈的资源。此外,现有的可扩展性分析工具需要模拟并发用户。虽然有人认为负载测试仍然可以应用于具有真实用户的正在运行的生产系统,但它不能用于评估系统在重负载下的可扩展性(即用于压力测试),因为这会影响使用现网的用户。此外,为处理请求而分配的资源可能是未知的(先验的),例如在复杂的微服务应用中,例如在云平台(例如,对象存储或云计算服务)中存在的微服务应用中。复杂的微服务应用通常提供接收混合请求的端点,传输给特定端点的参数会影响资源限制,从而导致出现瓶颈。例如,端点解码视频的响应时间取决于端点标识符、视频的大小和解压缩格式。因此,可扩展性分析需要考虑请求的多维性。
4、此外,现有的可扩展性分析工具没有考虑复杂的后端,因此缺乏跟踪处理请求所涉及的硬件和基础设施系统的机制,从而无法精确地确定复杂微服务应用的限制资源。此外,现有的工具侧重于在系统投入生产之前发现性能问题,模拟用户并引导用户关注系统,因此不适合生产阶段。此外,量化可扩展性问题的现有工具和系统倾向于计算扩展对性能的影响,并且在运行时利用这些工具和系统需要了解系统的内部情况,而无法提供关于各个系统资源的可扩展性的任何洞察。
技术实现思路
1、本发明寻求提供一种用于微服务系统的系统跟踪控制器,以及一种在微服务系统中使用系统跟踪控制器进行可扩展性分析的方法。本发明的目的是提供一种方案,其通过提供改进的系统跟踪控制器用于微服务系统来至少部分地克服现有技术中遇到的问题。该方案通过将系统视为黑盒而不假定了解内部架构而在目标系统面临高流量之前预测可扩展性问题,并且不仅提供系统的限制资源和饱和点,而且提供其它资源的饱和点。本发明通过分别依赖于(1)预测技术、(2)分布式跟踪和(3)多维建模,来帮助分析使用现网流量、具有复杂后端并支持混合请求的微服务系统的可扩展性,并且通过构建多维模型来预测资源瓶颈和饱和极限,从而支持混合请求。
2、本发明的一个或多个目的通过所附独立权利要求中提供的方案来实现。本发明的有利实现方式在从属权利要求中进一步定义。
3、在一个方面中,本发明提供了一种用于微服务系统的系统跟踪控制器,所述系统跟踪控制器包括多个计算资源,对微服务的请求在所述多个计算资源上执行。所述系统跟踪控制器用于接收多个请求的元数据,所述请求元数据包括每个请求的时间戳。所述系统跟踪控制器还用于接收与所述请求相关联的多个跟踪,每个跟踪包括时间戳。所述系统跟踪控制器还用于接收一个或多个计算资源的性能指标,所述性能指标包括每个资源的时间戳。所述系统跟踪控制器还用于基于相应的时间戳将所述资源、所述跟踪和所述请求关联。所述系统跟踪控制器还用于对所述跟踪进行编码。所述系统跟踪控制器还用于基于所述编码将所述跟踪分类为类别。所述系统跟踪控制器还用于基于所述类别确定所述跟踪、所述资源和所述请求的模型。所述系统跟踪控制器还用于估计边界。所述系统跟踪控制器还用于确定所述一个或多个资源中的至少一个资源的排名。
4、本发明的系统跟踪控制器预测了分布式系统在运行时将来可能发生的可扩展性问题。另外,系统跟踪控制器仅分析目标系统在生产过程中的监控度量,而不模拟用户,因此不会为目标系统增加额外的负载。此外,系统跟踪控制器不依赖于目标系统的内部架构,它不假定对目标系统的内部结构有任何了解,并将目标系统视为黑盒。此外,系统跟踪控制器使用分布式跟踪来关联为处理特定类别的请求而动态分配的资源,从而通过识别资源瓶颈来提供动态资源分配,同时考虑复杂的后端。此外,系统跟踪控制器提供所有系统资源的预测饱和负载水平,以及目标系统的限制资源和预测饱和负载水平,从而实现每个资源的可扩展性。此外,系统跟踪控制器通过分别依赖于(1)预测技术、(2)分布式跟踪和(3)多维建模来分析使用现网流量、具有复杂后端和支持混合请求的微服务系统的可扩展性。此外,本发明的系统跟踪控制器通过构建多维模型来预测资源瓶颈和饱和极限,从而支持混合请求。
5、在一种实现方式中,跟踪包括一个或多个跨度,其中,跨度是对属性值向量(p_i,_i),描述微服务在给定时间的状态、响应时间和其它特征。
6、跨度与在富集期间处理请求时使用的资源关联。跨度是后端响应于请求而生成的事件,其具有结构:kind、id、traceid、parentid、时间戳、持续时间、本地和远程ip、rest方法和url。
7、在另一种实现方式中,跨度被编码为元组(时间戳,组件id,traceid,id,parentid,协议,方法和路径)。
8、跨度的编码为跟踪提供了表示,以便可以根据跟踪的相似性对跟踪进行分组。
9、在另一种实现方式中,所述跟踪是通过生成跟踪树来进行分类的,其中,所述系统跟踪控制器用于通过以下方式生成跟踪树:
10、-为分配有跨度id的跟踪的每个跨度创建节点;
11、-使用所述parentid在两个节点之间建立边,其中,parentid为0的节点是根节点。
12、通过创建节点生成跟踪树有利于支持跟踪编码,为跟踪提供表示,以便可以根据跟踪的相似性对跟踪进行分组。
13、在另一种实现方式中,所述系统跟踪控制器还用于将所述跟踪树离散成多重集,并基于所述多重集确定所述模型。
14、跟踪树的离散化将分布式跟踪转换为表示,所述表示可以用于使用聚类对跟踪进行分类。
15、在另一种实现方式中,所述系统跟踪控制器还用于利用中心性对所述请求进行分组。
16、通过移除离群点观测值并使用鲁棒中心性度量计算观测值的中心,来利用中心性对请求进行分组,以确定分箱的中心趋势。
17、在另一种实现方式中,所述系统跟踪控制器还用于在请求组之间进行内插。
18、无法计算中心趋势的分箱通过使用双线性内插来推断。
19、在另一种实现方式中,所述系统跟踪控制器还用于在请求组外进行外推。
20、在观测区域之外对这些观测值进行外推,可以沿着某个指定的路径或曲面覆盖更大的曲面。
21、在另一种实现方式中,所述系统跟踪控制器还用于将所述至少一个资源作为多准则决策(multiple-criteria decision-making,mcdm)问题进行排名。
22、对限制资源进行排名使决策者可以重新设计后端系统。
23、在另一个方面中,本发明提供了一种用于系统跟踪控制器的方法,所述系统跟踪控制器用于微服务系统,所述微服务系统包括多个计算资源,对微服务的请求在所述多个计算资源上执行。所述方法包括接收多个请求的元数据,所述请求元数据包括每个请求的时间戳。所述方法还包括接收与所述请求相关联的多个跟踪,每个跟踪包括时间戳。所述方法还包括接收一个或多个计算资源的性能指标,所述性能指标包括每个资源的时间戳。所述方法还包括基于相应的时间戳将所述资源、所述跟踪和所述请求关联。所述方法还包括对所述跟踪进行编码。所述方法还包括基于所述编码将所述跟踪分类为类别。所述方法还包括基于所述类别确定所述跟踪、所述资源和所述请求的模型。所述方法还包括估计边界。所述方法还包括确定所述一个或多个资源中的至少一个资源的排名。
24、本发明的方法预测了在运行时将来可能发生的可扩展性问题。另外,本发明的方法仅分析目标系统在生产过程中的监控度量,而不模拟用户,因此不会为目标系统增加额外的负载。此外,本发明的方法不依赖于目标系统的内部架构,它不假定对目标系统的内部结构有任何了解,并将目标系统视为黑盒。此外,本发明的方法使用分布式跟踪来关联为处理特定类别的请求而动态分配的资源,从而通过识别资源瓶颈来提供动态资源分配,并且还考虑复杂的后端。此外,本发明的方法提供所有系统资源的预测饱和负载水平,以及目标系统的限制资源和预测饱和负载水平,从而实现每个资源的可扩展性。此外,本发明的方法通过分别依赖于(1)预测技术、(2)分布式跟踪和(3)多维建模来分析使用现网流量、具有复杂后端和支持混合请求的微服务系统的可扩展性。此外,本发明的方法通过构建多维模型来预测资源瓶颈和饱和极限,从而支持混合请求。
25、在一种实现方式中,跟踪包括一个或多个跨度,其中,跨度是对属性值向量(p_i,_i),描述微服务在给定时间的状态、响应时间和其它特征。
26、跨度与在富集期间处理请求时使用的资源关联。跨度是后端响应于请求而生成的事件,其具有结构:kind、id、traceid、parentid、时间戳、持续时间、本地和远程ip、rest方法和url。
27、在另一种实现方式中,跨度被编码为元组(时间戳,组件id,traceid,id,parentid,协议,方法和路径)。
28、跨度的编码为跟踪提供了表示,以便可以根据跟踪的相似性对跟踪进行分组。
29、在另一种实现方式中,所述跟踪是通过生成跟踪树来进行分类的,其中,所述方法包括通过以下方式生成跟踪树:
30、-为分配有跨度id的跟踪的每个跨度创建节点;
31、-使用所述parentid在两个节点之间建立边,其中,parentid为0的节点是根节点。
32、通过创建节点生成跟踪树有利于支持跟踪编码,为跟踪提供表示,以便可以根据跟踪的相似性对跟踪进行分组。
33、在另一种实现方式中,所述方法还包括:
34、-将所述跟踪树离散成多重集;
35、-基于所述多重集确定所述模型。
36、离散化成多重集将分布式跟踪转换为表示,所述表示可以用于使用聚类对跟踪进行分类。
37、在另一种实现方式中,所述方法还包括将所述跟踪树离散成序列,并基于所述序列确定所述模型。
38、离散化成序列将分布式跟踪转换为表示,所述表示可以用于使用聚类对跟踪进行分类。
39、在另一种实现方式中,所述方法还包括利用中心性对所述请求进行分组。
40、通过移除离群点观测值并使用鲁棒中心性度量计算观测值的中心,来利用中心性对请求进行分组,以确定分箱的中心趋势。
41、在另一种实现方式中,所述方法还包括在请求组之间进行内插。
42、内插可以推断无法计算中心趋势的分箱。
43、在另一种实现方式中,所述方法还包括在请求组外进行外推。
44、在观测区域之外对这些观测值进行外推,以沿着某个指定的路径或曲面覆盖更大的曲面。
45、在另一种实现方式中,所述方法还包括将所述至少一个资源作为多准则决策(multiple-criteria decision-making,mcdm)问题进行排名。
46、对限制资源进行排名使决策者可以重新设计后端系统。
47、需要说明的是,本技术中描述的所有设备、元件、电路、单元和模块可以通过软件或硬件元件或其任何类型的组合实现。本技术中描述的各种实体执行的所有步骤以及所描述的将由各种实体执行的功能旨在表明相应的实体适于或用于执行相应的步骤和功能。虽然在以下具体实施例的描述中,由外部实体执行的特定功能或步骤没有在执行该特定步骤或功能的该实体的具体详述元件的描述中反映,但是技术人员应该清楚,这些方法和功能可以在相应的硬件或软件元件或其任何类型的组合中实现。应当理解,本发明的特征易于以各种组合进行组合,而不偏离由所附权利要求书定义的本发明的范围。
48、本发明的附加方面、优点、特征和目的从附图和结合以下所附权利要求书解释的说明性实现方式的详细描述中变得显而易见。
本文地址:https://www.jishuxx.com/zhuanli/20240929/312025.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表