云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

京东云_阿里云邮箱域名_怎么申请

小七 141 0

在现代云应用程序中可以找到的微服务体系结构及其原理的反映面临着某些单片系统不常见的挑战,其中之一是在分布式环境中执行的端到端事务的可跟踪性,可能涉及调用大量不同的事务应用程序和服务。在端到端解决方案中遇到性能下降的情况下,识别瓶颈组件(如导致性能下降或显著增加端到端执行时间的被调用服务或服务组合)可能会成为一项复杂而不寻常的任务。有各种技术解决方案可以解决这个问题,其中许多都是基于重用通用方法:作为分布式事务执行中涉及的组件和服务之间传递的每个调用的一部分,添加了一个特定的跟踪标识符,表示端到端跟踪程序的,可用于在整个环境中的其他事务中唯一地确定执行的事务。跟踪标识符的形式和实现可能会有所不同—例如,公众号返利,在一些主要集成体系结构基于SOA的环境中,此类标识符作为附加的SOAP标头放置;在其他环境中,使用了各种基于HTTP(SOAP、REST/OData、纯HTTP)的集成技术,标识符作为HTTP报头放置,集成方法主要基于消息代理解决方案,建议将标识符添加到生成的消息报头/属性中(例如,AMQP或JMS消息属性)。鉴于微服务体系结构强烈依赖于通过HTTP公开的服务,并且主要促进REST体系结构,微服务上下文中常用的分布式跟踪解决方案是基于在交换消息的附加HTTP报头中注入跟踪信息。

OpenTracing API和分布式跟踪系统的主要原理

识别复杂景观的异质性(它以各种方式显示)平台、编程语言、运行时和框架)以及使用通用、可扩展工具集的需求,这些工具集是在平台无关和供应商中立的API之上开发的,淘客api,可用于构建真正高效的分布式跟踪系统,社区制定并发布了所谓的OpenTracing API规范,该规范体现了分布式跟踪的概念和原则,并定义了可用于各种平台的API,大数据的现状,遵循互操作性和兼容性的思想。OpenTracing API的实现已经可以在多个语言中找到,并在GitHub上发布。我建议您熟悉该规范,因为它还定义了分布式跟踪系统的核心元素。在这里,我不深入讨论它的细节,只关注它模型的基本组件和元素。

整个端到端事务由跟踪ID标识,跟踪ID在所有涉及的应用程序中保持不变。每个涉及的应用程序都可以创建一个或多个由span ID标识的span(类似于事务步骤),阿里大数据分析,其中span ID对于每个span都是唯一的,并且包含对跟踪ID的引用。除了根span(启动跟踪的初始span)之外,每个span还包含对其父span(即前一个span)的引用痕迹的一部分。每个跨度都用其开始和完成时间(计算其执行时间所需的时间)、名称(通常从操作名称继承)进行描述,并且可以通过编程方式分配附加项(例如,标记),这些项特定于特定的跨度,以及行李物品(可跨多个跨度传递),有助于封装进一步分析所需的额外信息或有助于理解跨度上下文。与同一跟踪相关的跨度关系可以表示为一个图形(如理论所示,有向无环图),它描述了整个事务(跟踪)和由其组成的步骤(跨度)的组合。

下图来源于Spring Cloud Sleuth(实现之一)的文档关于这个概念,我将稍后再谈)并提供了描述的概念以及跟踪和跨度关系的直观有力的说明:

来源:Spring Cloud Sleuth,作者:Adrian Cole、Spencer Gibb、Marcin Grzejszczak、Dave Syer。

假设应用程序/服务使用支持这个概念的库进行了测试并且可以生成兼容格式的跟踪(分布式跟踪系统客户端),单个应用程序生成的跟踪信息(由span数据组成)可以被收集、持久化和处理(聚合、分析、可视化、呈现、,等)通过一个中心组件(分布式跟踪系统服务器,辅以表示层逻辑)。用于将span数据从各个应用程序传送到中央服务器的传输方式和协议可能有所不同。在最基本的设置中,这可以采用包含跨域信息的HTTP请求的形式,由应用程序发送到中心服务器。在更高级的设置中,低价云服务器,可以使用消息代理解决方案(如AMQP代理,例如RabbitMQ)来调解span数据的传送,这将允许span数据生产者(跟踪应用程序)与span数据消费者(分布式跟踪系统服务器)分离。中央服务器上收集的span数据(span存储)的持久性可以使用内存解决方案,或者基于经典关系数据库、流平台(如Apache Kafka)或搜索和索引引擎(如Elasticsearch)的解决方案来实现。对收集的span数据的后续分析可以包括整个span图形的可视化,以及在跟踪事务的每个步骤上花费的上下文和执行时间的指示。高层次的概述所涉及的组件放在一起,形成更复杂和先进的分布式跟踪解决方案如下:

演示:描述和备注