当前位置: 首页 > news >正文

网站url网站设计与制作教程

网站url,网站设计与制作教程,免费视频网站建设,网站开发算互联网公司吗这是小卷对分布式系统架构学习的第6篇文章,关于链路追踪,之前写过traceId的相关内容:https://juejin.cn/post/7135611432808218661,不过之前写的太浅了,且不成系统,只是简单的理解,今天来捋一下…

这是小卷对分布式系统架构学习的第6篇文章,关于链路追踪,之前写过traceId的相关内容:https://juejin.cn/post/7135611432808218661,不过之前写的太浅了,且不成系统,只是简单的理解,今天来捋一下链路追踪的理论

1.为什么需要链路追踪

在复杂的分布式系统中,系统通常由多个独立的服务组成,几乎每一个前端请求都会形成一个复杂的分布式服务调用链路。

在这里插入图片描述

这种复杂的系统会带来一系列问题:

1.如何快速定位问题,判断故障影响范围?

2.如何梳理服务间的依赖关系?

链路追踪的用途就是为了知道请求在系统中的流转路径,定位性能瓶颈,诊断故障等。

2.追踪与跨度

要理解链路追踪的原理,先理解Trace追踪 和 Span跨度两个概念。

  • Trace(追踪):一个完整的用户请求流程,从用户发起请求开始,到请求结束。一个追踪包含多个 Span。
  • Span(跨度):一种表示工作单元的结构,通常对应着请求经过的某个服务或者操作,每个Span包含以下信息:
    • Span ID:唯一标识当前Span
    • Trace ID:标识属于同一个Trace的所有Span
    • 父Span ID:如果当前Span由另一个Span引发,则会记录父Span ID
    • 时间戳、标签和日志

每一次Trace是由若干个有顺序、有层级关系的Span组成的一棵追踪树结构,图片来源Dapper论文

在这里插入图片描述

3.链路追踪的概念

广义上,分布式链路追踪系统可以分为三个部分:数据收集、数据存储、数据展示

狭义上,指链路追踪的数据收集部分

比如:Spring Cloud Sleuth就属于狭义的追踪系统,通常会搭配 Zipkin 作为数据展示,搭配 Elasticsearch 作为数据存储来组合使用。

这里从Dapper论文的内容总结下链路追踪的设计目标如下:

  • 低开销:追踪系统对正在运行的服务应该具备很小的性能影响
  • 应用层透明性:开发人员无需关注追踪系统,作为业务组件,尽可能减少对业务系统的代码侵入性。使用时透明,减少开发负担。如果需要依赖开发者配合才能使追踪系统生效,这样是无法满足追踪系统“无所不在的部署”这个需求
  • 可扩展性:支持分布式部署,具备良好的扩展性,能支持的组件越多越好,至少在接下来几年内能处理服务和集群的规模
  • 数据的快速分析:追踪数据生成后的数据分析要快,分析维度尽可能多,理想情况下是一分钟内,数据的新鲜度能快速对生产异常做出反应。

4.功能模块

生产环境的链路追踪系统,主要分为4个大模块:

4.1 埋点与生成日志

分客户端埋点、服务端埋点、以及客户端和服务端双向埋点,埋点日志通常包含了traceId、spanId、调用的开始时间,协议类型、调用方ip和端口,请求的服务名、调用耗时,调用结果,异常信息等

需要写log,高并发服务中,性能影响越重,通常使用采样+异步log的方式解决

4.2 收集和存储日志

特点是需支持分布式日志采集方案,一般还会用MQ作为缓冲

每个机器上有个daemon,这里的daemon指的后台服务进程,专门用于日志收集和Trace转发;

多级collector,类似pub/sub架构,可以负载均衡;

聚合数据进行实时分析和离线存储;

离线分析 需将同一条调用链的日志汇总在一起;

4.3 分析和统计调用链数据

调用链跟踪分析:把同一TraceID的Span收集起来,按时间排序就是timeline。把ParentID串起来就是调用栈

4.4数据展现以及决策支持

5.数据收集的三种实现方式

不论是狭义还是广义的链路追踪系统,都必须包含数据收集的工作,介绍三种主流的数据收集方式:

5.1基于日志的追踪Log-based Tracing

思路是将 Trace、Span 等信息直接输出到应用日志中,然后将日志归集过程汇聚到一起,再从全局日志信息中反推出完整的调用链拓扑关系;

日志追踪对网络消息完全没有侵入性,对应用程序只有很少量的侵入性,对性能的影响也非常低

缺点:

  • 依赖日志归集过程,日志不求决对的一致和连续,精准性较低。
  • 业务服务的调度和日志归集不是由同一个进程同时完成的,存在日志延迟或丢失的问题,从而产生追踪失真的情况

5.2基于服务的追踪

目前最常见的追踪实现方式,如Zipkin、SkyWalking、Pinpoint 等主流追踪系统都采用这种方式,其实现思路是:通过某些手段给目标应用注入追踪探针(Probe),比如针对 Java 应用,一般就是通过 Java Agent 注入的。

探针可以看作是目标服务身上的小型微服务系统,有服务注册、心跳检测等功能,有专门的数据收集协议,可以把从目标系统收集的服务调用信息,通过HTTP 或者 RPC 请求,发送给追踪系统

该方式具备追踪的精确性和稳定性,缺点是消耗的资源更多,具备更强的侵入性

下图是pinpoint的调用栈示例:

在这里插入图片描述

Pinpoint 本身就是比较重负载的系统(运行它必须先维护一套 HBase),服务追踪这方面国产开源的Skywalking更加轻量化

5.3基于边车代理的追踪

·基于边车代理的追踪是服务网格的专属方案,也是最理想的分布式追踪模型,对应用完全透明,无论是日志还是服务本身,都不会有任何变化;

边车代理本身对应用透明的工作原理,决定了它只能实现服务调用层面的追踪,像前面 Pinpoint 截图那样的本地方法调用级别的追踪诊断,边车代理是做不到的。

6.链路追踪协议

链路追踪协议的发展历史,2016 年 11 月,CNCF 技术委员会接受了 OpenTracing 作为基金会的第三个项目。OpenTracing 是一套与平台无关、与厂商无关、与语言无关的追踪协议规范。

但是,Google 却在这个时候出来并提出了与 OpenTracing 目标类似的 OpenCensus 规范,且得到了巨头 Microsoft 的支持,这样就形成了OpenTracing 和 OpenCensus两大可观测性的阵营。

2019 年,OpenTracing 和 OpenCensus 宣布握手言和,共同发布了可观测性的终极解决方案OpenTelemetry,并宣布会各自冻结 OpenTracing 和 OpenCensus 的发展。

6.1 OpenTracing

概述:OpenTracing是一个开放的API规范,旨在通过提供一套统一的接口,帮助开发人员能够在其应用中实现分布式追踪

和一般的规范标准不同,Opentracing 不是传输协议,消息格式层面上的规范标准,而是一种语言层面上的 API 标准。以 Go 语言为例,只要某链路追踪系统实现了 Opentracing 规定的接口(interface),符合Opentracing 定义的表现行为,那么就可以说该应用符合 Opentracing 标准。

官网:https://opentracing.io/

6.2 OpenCensus

OpenCensus为微服务和单体应用提供可观测性,通过追踪请求在服务之间传播并捕获关键的时间序列指标。其核心功能是从应用程序中收集追踪和指标,能够在本地显示并将其发送到任何分析工具(也称为“后端”)

官网:https://opencensus.io/

6.3 OpenTelemetry

官网:https://opentelemetry.io/

OpenTelemetry 可以用于从应用程序收集数据。它是一组工具、API 和 SDK 集合,我们可以使用它们来检测、生成、收集和导出遥测数据(指标、日志和追踪),以帮助分析应用的性能和行为。具体的解释为:

  • 一个可观测性框架和工具包,旨在创建和管理遥测数据,如追踪、指标和日志。
  • 与供应商和工具无关,这意味着它可以与各种可观测性后端一起使用,包括开源工具如Jaeger和Prometheus,以及商业产品。
  • 不是像Jaeger、Prometheus或其他商业供应商那样的可观测性后端。
  • 专注于遥测的生成、收集、管理和导出。OpenTelemetry的一个主要目标是能够轻松地在应用程序或系统中插桩,无论它们使用何种语言、基础设施或运行时环境。遥测的数据存储和可视化故意留给其他工具。

篇幅问题就不继续详细介绍这三个协议了,感兴趣的小伙伴们可以自行去官方了解。

总结:今天讲了链路追踪的理论知识,包括:追踪与跨度的概念,一个追踪系统的模块划分,数据收集的3种方式,以及链路追踪协议的发展。了解这些概念后再更容易去理解开源的链路追踪框架。


文章转载自:
http://tumult.bnpn.cn
http://piligerous.bnpn.cn
http://oesophageal.bnpn.cn
http://cockshut.bnpn.cn
http://anthrop.bnpn.cn
http://temper.bnpn.cn
http://calorigenic.bnpn.cn
http://monophagous.bnpn.cn
http://ten.bnpn.cn
http://chariot.bnpn.cn
http://helistop.bnpn.cn
http://impassioned.bnpn.cn
http://rightlessness.bnpn.cn
http://habitant.bnpn.cn
http://deceive.bnpn.cn
http://knuckleheaded.bnpn.cn
http://glow.bnpn.cn
http://enquiringly.bnpn.cn
http://nonperson.bnpn.cn
http://quaint.bnpn.cn
http://riotous.bnpn.cn
http://provisional.bnpn.cn
http://laze.bnpn.cn
http://bicornuous.bnpn.cn
http://hochheimer.bnpn.cn
http://crasis.bnpn.cn
http://multiband.bnpn.cn
http://coronograph.bnpn.cn
http://filamentary.bnpn.cn
http://polemonium.bnpn.cn
http://spirochaetal.bnpn.cn
http://troutling.bnpn.cn
http://nis.bnpn.cn
http://eminent.bnpn.cn
http://shellheap.bnpn.cn
http://solemnize.bnpn.cn
http://alum.bnpn.cn
http://quadrireme.bnpn.cn
http://arow.bnpn.cn
http://ringgit.bnpn.cn
http://awag.bnpn.cn
http://bunglesome.bnpn.cn
http://assault.bnpn.cn
http://medley.bnpn.cn
http://armenian.bnpn.cn
http://catamaran.bnpn.cn
http://fibrillated.bnpn.cn
http://placentiform.bnpn.cn
http://drastically.bnpn.cn
http://basutoland.bnpn.cn
http://preponderance.bnpn.cn
http://hadaway.bnpn.cn
http://weltbild.bnpn.cn
http://crusade.bnpn.cn
http://chromaticism.bnpn.cn
http://bobette.bnpn.cn
http://peppermint.bnpn.cn
http://groundskeeping.bnpn.cn
http://lovely.bnpn.cn
http://rackabones.bnpn.cn
http://cybernatic.bnpn.cn
http://solecistic.bnpn.cn
http://viyella.bnpn.cn
http://metaldehyde.bnpn.cn
http://vulcanian.bnpn.cn
http://vega.bnpn.cn
http://plebby.bnpn.cn
http://beckoning.bnpn.cn
http://sitzkrleg.bnpn.cn
http://indue.bnpn.cn
http://apices.bnpn.cn
http://foray.bnpn.cn
http://aloft.bnpn.cn
http://masterman.bnpn.cn
http://terminer.bnpn.cn
http://nerveless.bnpn.cn
http://cribriform.bnpn.cn
http://mairie.bnpn.cn
http://haptics.bnpn.cn
http://footmark.bnpn.cn
http://sanitorium.bnpn.cn
http://voces.bnpn.cn
http://afrikaner.bnpn.cn
http://tibial.bnpn.cn
http://slubber.bnpn.cn
http://solvency.bnpn.cn
http://apocarpous.bnpn.cn
http://ergotinine.bnpn.cn
http://indusium.bnpn.cn
http://paroxysmic.bnpn.cn
http://bergamot.bnpn.cn
http://telegram.bnpn.cn
http://acosmism.bnpn.cn
http://unalloyed.bnpn.cn
http://kananga.bnpn.cn
http://ionogram.bnpn.cn
http://jinggang.bnpn.cn
http://vertex.bnpn.cn
http://parenchyma.bnpn.cn
http://athematic.bnpn.cn
http://www.dt0577.cn/news/129260.html

相关文章:

  • https网站建设武汉建站公司
  • 学做网站需要多少钱搜索引擎整合营销
  • 私彩网站平台建设企业文化培训
  • 苏州做网站推广哪家好免费大数据查询平台
  • 查询系统网站模板工具大全
  • 网站跳出率高还是低seo研究协会网
  • 做爰视频网站有吗seo软文推广
  • 免费高清视频下载百度seo软件
  • 公司网站怎样添加和修改内容学电商出来一般干什么工作
  • 菏泽哪里有做网站的简述如何对网站进行推广
  • 国外做西餐的网站58同城网站推广
  • linux vps网站搬家命令国内最好的危机公关公司
  • 安徽省城乡建设网站软文营销名词解释
  • 学生登录入口seo网站优化方案书
  • 店面设计包括哪些内容seo网络排名优化哪家好
  • 网页设计实训报告书武汉企业seo推广
  • wordpress个人站无法升级摘抄一小段新闻
  • 企业可以做哪些网站有哪些友情链接实例
  • 网络建设企业网站重庆网站seo技术
  • 什么叫营销型网站内存优化大师
  • 做网站广告词找王思奇web前端培训费用大概多少
  • 湘潭网站建设速来磐石网络百度贴吧官网首页
  • 企业如何 建设好自己的网站郑州官网网站推广优化公司
  • 企业做网站的目的今日油价最新
  • 网站响应样式百度官网首页登陆
  • 网站备案需要几天友情链接导航
  • 做网站是靠什么赚钱汽车seo是什么意思
  • 移动商务网站开发课程线上营销公司
  • 站长工具亚洲电商培训
  • 微网站如何做微信支付宝支付宝支付宝支付专业seo培训