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

制作网站的分类/有了域名怎么建网站

制作网站的分类,有了域名怎么建网站,江西省网站备案,企业网站建设的报价链路追踪是什么?常用的链路追踪工具有哪些?它们的异同、架构、工作流程及关键指标有哪些?希望读完本文能帮您解答这些疑惑! 一、链路追踪简介 链路追踪技术(Distributed Tracing)是一种用于监控和分析分布…

链路追踪是什么?常用的链路追踪工具有哪些?它们的异同、架构、工作流程及关键指标有哪些?希望读完本文能帮您解答这些疑惑!

一、链路追踪简介

链路追踪技术(Distributed Tracing)是一种用于监控和分析分布式系统中的请求流的技术。随着微服务架构的广泛应用,单一请求可能会经过多个服务节点,这使得监控和诊断问题变得复杂。链路追踪技术通过记录每个请求在各个服务节点中的详细信息,帮助开发者理解和优化系统性能。以下是链路追踪技术的关键概念和常见工具:

关键概念

  1. Trace(追踪):一个Trace代表一次完整的请求处理过程,从发起请求到最终完成,可能会经过多个服务节点。

  2. Span(跨度):一个Span代表在某个服务节点中对请求的处理过程。一个Trace由多个Span组成。

  3. Span Context(跨度上下文):包含Trace ID和Span ID等信息,用于关联各个Span。

  4. Instrumentation(插桩):在代码中添加钩子,用于记录Trace和Span信息。

常见工具

  1. Zipkin:一个开源的分布式追踪系统,提供收集、存储、查询和可视化Trace数据的功能。支持多种语言的客户端库。

  2. Jaeger:由Uber开源的分布式追踪系统,提供Trace数据的收集、存储和分析功能。与Kubernetes和Prometheus等工具集成良好。

  3. SkyWalking:一个开源的应用性能监控(APM)和分布式追踪系统,设计用于监控和诊断微服务、云原生和容器化架构的应用。提供详细的链路追踪、性能监控、服务依赖分析等功能,支持多种语言和框架。

  4. OpenTelemetry:一个统一的标准和工具集,用于收集分布式系统的度量数据、日志和追踪信息。它是OpenTracing和OpenCensus的合并项目,支持多种语言和后端。

  5. Elastic APM:Elastic公司提供的应用性能监控解决方案,集成了链路追踪功能,可以与Elasticsearch和Kibana配合使用,提供强大的数据分析和可视化能力。

工作原理

  1. 数据采集:通过在代码中插入追踪代码或使用自动化工具,收集请求的Trace和Span数据。

  2. 数据传输:将采集到的数据发送到集中式的追踪系统(如Zipkin、Jaeger或SkyWalking)。

  3. 数据存储:追踪系统会将接收到的Trace和Span数据存储在数据库中,通常是高性能的NoSQL数据库。

  4. 数据分析和可视化:使用追踪系统的界面或集成的可视化工具,分析和展示Trace数据,帮助识别性能瓶颈和故障点。

应用场景

  • 性能优化:通过分析Trace数据,识别系统中的性能瓶颈,并进行相应的优化。
  • 故障排查:快速定位请求失败的服务节点,缩短故障排查时间。
  • 依赖关系分析:了解服务之间的调用关系,优化服务依赖结构。
  • SLA监控:监控各个服务的响应时间和可用性,确保满足服务级别协议(SLA)的要求。

实践建议

  • 全面覆盖:确保所有关键路径和服务都被追踪,避免遗漏关键的Trace数据。
  • 性能开销:注意追踪代码对系统性能的影响,合理设置采样率,避免过多的数据收集导致系统负担。
  • 安全和隐私:在追踪数据中避免收集敏感信息,确保数据传输和存储的安全性。

链路追踪技术是微服务架构中非常重要的监控手段,通过详细的请求流分析,帮助开发者更好地理解系统运行状态,优化性能,快速定位和解决问题。SkyWalking作为一种强大的链路追踪工具,提供了全面的监控和分析能力,是现代分布式系统中不可或缺的一部分。

二、常见链路追踪工具对比分析

对于常见的分布式追踪工具(Zipkin、Jaeger、SkyWalking、OpenTelemetry和Elastic APM),它们在应用场景和性能方面有一些差异。下面是它们的对比分析:

工具主要应用场景性能特点支持语言和框架开源状态
Zipkin- 性能优化和故障排查- 轻量级,适合初学者和小规模部署Java、Go、Python、Ruby、Node.js 等
Jaeger- 微服务架构监控和性能优化- 高度可扩展,支持大规模部署,性能良好Java、Go、Python、Node.js 等
SkyWalking- 微服务和云原生环境下的应用性能监控和优化- 支持分布式链路追踪、性能指标监控、服务依赖分析Java、Go、Node.js、Python、PHP、.NET 等
OpenTelemetry- 跨语言和跨平台的应用监控和追踪- 标准化的API和数据格式,支持多语言,集成度高支持多种主流编程语言和框架
Elastic APM- Elasticsearch 和 Kibana 集成的应用性能监控- 强大的数据分析和可视化能力,适合与Elastic Stack集成进行全面监控Java、Go、Python、Node.js 等

分析说明:

  1. 主要应用场景

    • ZipkinJaeger 主要用于性能优化和故障排查,适合于需要快速定位和解决问题的场景。
    • SkyWalking 专注于微服务和云原生环境下的应用性能监控和优化,提供了详细的链路追踪和服务依赖分析。
    • OpenTelemetry 提供了跨语言和跨平台的应用监控和追踪,通过标准化API和数据格式,支持多语言和集成度高。
    • Elastic APM 与Elastic Stack集成,提供强大的数据分析和可视化能力,适合需要全面监控和日志分析的场景。
  2. 性能特点

    • ZipkinJaeger 轻量级且高度可扩展,适合于小规模到大规模部署。
    • SkyWalking 提供了性能指标监控、服务依赖分析等丰富功能,适合复杂的微服务架构。
    • OpenTelemetry 通过标准化API和数据格式,保证了高效的数据采集和传输,支持多种语言和框架。
    • Elastic APM 提供了强大的数据分析和可视化能力,与Elastic Stack的整合使得监控和调优更加全面。
  3. 支持语言和框架

    • ZipkinJaegerSkyWalkingElastic APM 均支持主流的编程语言如Java、Go、Python等,覆盖了广泛的开发环境和技术栈。
    • OpenTelemetry 更进一步地提供了跨语言和跨平台的支持,使得在多语言和混合技术栈中的集成更加便捷。
  4. 开源状态

    • 所有列出的工具均为开源项目,拥有活跃的社区支持和持续的更新。

通过以上对比分析,可以根据具体的需求和系统架构选择合适的链路追踪工具,以实现最佳的应用监控和性能优化效果。

三、常见链路追踪工具架构及工作流程

Zipkin 架构及工作流程

Zipkin
Application
Send Request
Create Span
Call Service B
Create Span
Call Service C
Create Span
Store Spans
Query Spans
Display Traces
Zipkin Collector
Zipkin Storage
Zipkin Query Service
Zipkin UI
Client
Service A
Service B
Service C
解释说明:
  1. Client 发起请求到 Service A
  2. Service A 处理请求并创建一个Span,将Span信息发送到 Zipkin Collector
  3. Service A 调用 Service BService B 处理请求并创建另一个Span,将Span信息发送到 Zipkin Collector
  4. Service B 调用 Service CService C 处理请求并创建新的Span,将Span信息发送到 Zipkin Collector
  5. Zipkin Collector 收集所有的Span信息并存储到 Zipkin Storage 中。
  6. Zipkin Query Service 查询存储中的Span数据。
  7. Zipkin UI 显示完整的请求追踪信息和详细的Span数据。

Jaeger 架构及工作流程

Jaeger
Application
Send Request
Create Span
Call Service B
Create Span
Call Service C
Create Span
Send Spans
Store Spans
Query Spans
Display Traces
Jaeger Agent
Jaeger Collector
Jaeger Storage
Jaeger Query Service
Jaeger UI
Client
Service A
Service B
Service C
解释说明:
  1. Client 发起请求到 Service A
  2. Service A 处理请求并创建一个Span,将Span信息发送到 Jaeger Agent
  3. Service A 调用 Service BService B 处理请求并创建另一个Span,将Span信息发送到 Jaeger Agent
  4. Service B 调用 Service CService C 处理请求并创建新的Span,将Span信息发送到 Jaeger Agent
  5. Jaeger Agent 将收集到的Span信息发送到 Jaeger Collector
  6. Jaeger Collector 将Span信息存储到 Jaeger Storage 中。
  7. Jaeger Query Service 查询存储中的Span数据。
  8. Jaeger UI 显示完整的请求追踪信息和详细的Span数据。

SkyWalking 架构及工作流程

SkyWalking
Application
Send Request
Create Span
Call Service B
Create Span
Call Service C
Create Span
Send Spans
Store Spans
Query Spans
Display Traces
SkyWalking Agent
SkyWalking OAP Server
SkyWalking Storage
SkyWalking Query Service
SkyWalking UI
Client
Service A
Service B
Service C
解释说明:
  1. Client 发起请求到 Service A
  2. Service A 处理请求并创建一个Span,将Span信息发送到 SkyWalking Agent
  3. Service A 调用 Service BService B 处理请求并创建另一个Span,将Span信息发送到 SkyWalking Agent
  4. Service B 调用 Service CService C 处理请求并创建新的Span,将Span信息发送到 SkyWalking Agent
  5. SkyWalking Agent 将收集到的Span信息发送到 SkyWalking OAP Server
  6. SkyWalking OAP Server 将Span信息存储到 SkyWalking Storage 中。
  7. SkyWalking Query Service 查询存储中的Span数据。
  8. SkyWalking UI 显示完整的请求追踪信息和详细的Span数据。

OpenTelemetry 架构及工作流程

OpenTelemetry
Application
Send Request
Create Span
Call Service B
Create Span
Call Service C
Create Span
Send Spans
Process & Export Spans
Query Spans
Display Traces
OpenTelemetry SDK
OpenTelemetry Collector
Backend Storage
Query Service
Visualization UI
Client
Service A
Service B
Service C
解释说明:
  1. Client 发起请求到 Service A
  2. Service A 处理请求并创建一个Span,将Span信息通过 OpenTelemetry SDK 发送到 OpenTelemetry Collector
  3. Service A 调用 Service BService B 处理请求并创建另一个Span,将Span信息通过 OpenTelemetry SDK 发送到 OpenTelemetry Collector
  4. Service B 调用 Service CService C 处理请求并创建新的Span,将Span信息通过 OpenTelemetry SDK 发送到 OpenTelemetry Collector
  5. OpenTelemetry Collector 处理并导出Span数据到后端存储系统(如Elasticsearch、Jaeger、Prometheus等)。
  6. Backend Storage 存储Span数据。
  7. Query Service 查询存储中的Span数据。
  8. Visualization UI 显示完整的请求追踪信息和详细的Span数据。

Elastic APM 架构及工作流程

Elastic APM
Application
Send Request
Create Span
Call Service B
Create Span
Call Service C
Create Span
Send Spans
Store Spans
Query Spans
Visualize Traces
APM Agent
APM Server
Elasticsearch
Kibana
Client
Service A
Service B
Service C
H
解释说明:
  1. Client 发起请求到 Service A
  2. Service A 处理请求并创建一个Span,将Span信息发送到 APM Agent
  3. Service A 调用 Service BService B 处理请求并创建另一个Span,将Span信息发送到 APM Agent
  4. Service B 调用 Service CService C 处理请求并创建新的Span,将Span信息发送到 APM Agent
  5. APM Agent 将收集到的Span信息发送到 APM Server
  6. APM Server 将Span信息存储到 Elasticsearch 中。
  7. Kibana 查询Elasticsearch中的Span数据。
  8. Kibana 显示完整的请求追踪信息和详细的Span数据。

四、链路追踪关键指标

在不同的应用场景中,选择和评估链路追踪工具时需要关注的指标会有所不同。以下是一些常见的场景及其对应的关键指标:

1. 性能优化

在进行性能优化时,重要的指标包括:

  • 追踪延迟(Trace Latency):追踪工具对请求响应时间的影响,低延迟工具更适合性能敏感的应用。
  • 采样率(Sampling Rate):追踪数据的采样比例,高采样率可以提供更详细的性能数据,但会增加系统开销。
  • 吞吐量(Throughput):工具能够处理的请求数量,高吞吐量工具可以更好地应对高并发场景。

2. 故障排查

在故障排查场景中,关注的指标包括:

  • 错误率(Error Rate):工具能够准确捕捉和报告错误请求的比例,帮助快速定位问题。
  • 根因分析能力(Root Cause Analysis Capability):工具是否提供详细的错误原因分析,帮助快速找到问题根源。
  • 服务依赖图(Service Dependency Graph):工具是否能提供清晰的服务依赖关系图,帮助理解服务间的调用关系。

3. 监控和可视化

在监控和可视化场景中,关键指标包括:

  • 可视化能力(Visualization Capability):工具提供的可视化功能,是否支持直观的Trace和Span展示。
  • 查询性能(Query Performance):在大规模数据下,工具的查询速度和效率。
  • 实时性(Real-time Capability):工具数据的实时性,是否能及时展示最新的追踪数据。

4. 扩展性和集成性

在扩展性和集成性方面,需要关注:

  • 扩展性(Scalability):工具在大规模部署下的表现,是否能够处理海量数据。
  • 集成性(Integration Capability):工具与其他监控系统(如Prometheus、Elasticsearch等)的集成能力。
  • 支持的语言和框架(Supported Languages and Frameworks):工具是否支持当前系统使用的编程语言和框架。

5. 安全性和隐私

在安全性和隐私方面,关注的指标包括:

  • 数据加密(Data Encryption):工具是否支持数据的传输和存储加密。
  • 访问控制(Access Control):是否提供细粒度的访问控制,确保只有授权用户可以访问敏感数据。
  • 隐私保护(Privacy Protection):工具是否支持对敏感数据的屏蔽或脱敏处理。

不同工具的关键指标对比

工具性能优化故障排查监控和可视化扩展性和集成性安全性和隐私
Zipkin低延迟,适合小规模部署提供基本的错误率和依赖图分析提供基础的可视化功能可扩展,但需要自行配置和集成基本支持,需自行实现安全控制
Jaeger高吞吐量,适合大规模部署提供详细的错误分析和依赖图提供强大的可视化功能高度可扩展,良好集成性支持数据加密和访问控制
SkyWalking高性能,全面的性能指标监控提供详细的根因分析和依赖图提供丰富的可视化功能和实时数据展示高度可扩展,支持多种后端存储和集成支持多种安全机制和隐私保护
OpenTelemetry标准化API,低开销提供基础的错误分析和依赖图提供灵活的可视化和查询功能跨语言,良好的集成性和扩展性支持数据加密和访问控制
Elastic APM高性能分析和可视化提供详细的错误和根因分析强大的可视化和实时监控能力高度可扩展,与Elastic Stack集成支持数据加密和访问控制

通过以上对比,可以根据具体的应用场景和需求选择合适的链路追踪工具。例如,对于性能优化,可以选择低延迟和高吞吐量的工具;对于故障排查,可以选择提供详细错误分析和根因分析的工具;对于监控和可视化需求,可以选择提供强大可视化功能的工具。

五、一个秘密

图片

锅总个人博客

https://gentlewok.blog.csdn.net/

锅总微信公众号

图片

相关文章:

锅总浅析链路追踪技术

链路追踪是什么?常用的链路追踪工具有哪些?它们的异同、架构、工作流程及关键指标有哪些?希望读完本文能帮您解答这些疑惑! 一、链路追踪简介 链路追踪技术(Distributed Tracing)是一种用于监控和分析分布…...

为什么阿里开发手册不建议使用Date类?

在日常编码中,基本上99%的项目都会有一个DateUtil工具类,而时间工具类里用的最多的就是java.util.Date。 大家都这么写,这还能有问题?? 当你的“默认常识”出现问题,这个打击,就是毁灭性的。 …...

中间层 k8s(Kubernetes) 到底是什么,架构是怎么样的?

你是一个程序员,你用代码写了一个博客应用服务,并将它部署在了云平台上。 但应用服务太过受欢迎,访问量太大,经常会挂。 所以你用了一些工具自动重启挂掉的应用服务,并且将应用服务部署在了好几个服务器上,…...

【CTFWP】ctfshow-web40

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 题目介绍:题目分析:payload:payload解释:payload2:payload2解释:flag 题目介绍: …...

项目实战1(30小时精通C++和外挂实战)

项目实战1(30小时精通C和外挂实战) 01-MFC1-图标02-MFC2-按钮、调试、打开网页05-MFC5-checkbox及按钮绑定对象06--文件格式、OD序列号08-暴力破解09-CE10-秒杀僵尸 01-MFC1-图标 这个外挂只针对植物大战僵尸游戏 开发这个外挂,首先要将界面…...

百日筑基第三十六天

今日论道还算顺利,只可惜感到也没学到什么东西。晚些时候师祖问话,主要是来这边之后有什么困难之类,好像也没遇到需要他来帮我解决的困难,于是问了些修炼方法之类。...

MySQL: ALTER

正文 在数据库管理系统(DBMS)中,DDL(Data Definition Language)、DCL(Data Control Language)、和 DML(Data Manipulation Language)是三种主要的SQL(Struct…...

微前端技术预研 - bit初体验

1.关于什么是微前端以及微前端的发展, 当前主流框架以及实现技术等,可参考这篇总结(非常全面), 微前端总结:目录详见下图 本文内容主要针对bit框架的实时思路以及具体使用。 1.什么是Bit? Bit 是可组合软件的构建…...

对象关系映射---ORM

一、什么是ORM? ORM(Object Relational Mapping),即对象关系映射,是一种程序设计技术,用于在面向对象编程语言中实现对象和关系型数据库之间的映射。 二、ORM是干什么的? ORM 的主要目的是简…...

Django REST Framework(十七)Authentication

1.认证Authentication 在 Django REST framework (DRF) 中,可以在配置文件中配置全局默认的认证方案。常见的认证方式包括 cookie、session、和 token。DRF 提供了灵活的认证机制,可以在全局配置文件中设置默认认证方式,也可以在具体的视图类…...

FPGA开发——数码管的使用

一、概述 在我们的日常开发中,数字显示的领域中用得最多的就是数码管,这篇文章也是围绕数码管的静态显示和动态显示进行一个讲解。 1、理论 (1)数码管原理图 在对数码管进行相关控制时,其实就是对于8段发光二极管和…...

什么是网络安全等级保护测评服务?

等保测评 依据国家网络安全等级保护制度规定,按照有关管理规范和技术标准,对非涉及国家秘密的网络安全等级保护状况进行检测评估。定级协助 根据等级保护对象在国家安全、经济建设、社会生活中的重要程度,以及一旦遭到破坏、丧失功能或者数据…...

基于深度学习的多模态情感分析

基于深度学习的多模态情感分析是一个结合不同类型数据(如文本、图像、音频等)来检测和分析情感的领域。它利用深度学习技术来处理和融合多模态信息,从而提高情感分析的准确性和鲁棒性。以下是对这一领域的详细介绍: 1. **多模态情…...

Glove-词向量

文章目录 共现矩阵共线概率共线概率比词向量训练总结词向量存在的问题 上一篇文章词的向量化介绍了词的向量化,词向量的训练方式可以基于语言模型、基于窗口的CBOW和SKipGram的这几种方法。今天介绍的Glove也是一种训练词向量的一种方法,他是基于共现概率…...

Plugin ‘mysql_native_password‘ is not loaded`

Plugin mysql_native_password is not loaded mysql_native_password介绍1. 使用默认的认证插件2. 修改 my.cnf 或 my.ini 配置文件3. 加载插件(如果确实没有加载)4. 重新安装或检查 MySQL 版本 遇到错误 ERROR 1524 (HY000): Plugin mysql_native_passw…...

Hive数据类型

原生数据类型 准备数据 查看表信息 加载数据 查看数据 复杂数据类型-数组 准备数据 查看数据 ​优化 复杂数据类型-map 准备数据 查看数据 复杂数据类型-默认分隔符 准备数据 查看数据 原生数据类型 准备数据 -- 1 建库 drop database if exists db_1 cascade;…...

OSI七层网络模型:构建网络通信的基石

在计算机网络领域,OSI(Open Systems Interconnection)七层模型是理解网络通信过程的关键框架。该模型将网络通信过程细分为七个层次,每一层都有其特定的功能和职责,共同协作完成数据从发送端到接收端的传输。接下来&am…...

MSYS2下载安装和使用

Minimalist GNU(POSIX)system on Windows,Windows下的GNU环境。 目录 1. 安装 2. pacman命令 3. 配置vim 4. 一些使用示例 4.1 编译代码 4.2 SSH登录远程服务器 1. 安装 官网下载:https://www.msys2.org/ 双击.exe文件&am…...

机器学习中的决策树算法——从理论到实践完整指南

决策树在机器学习中的应用与原理 1. 介绍1.1 定义和基本概念1.2 决策树在机器学习中的角色和重要性 2. 决策树的结构2.1 节点、分支、叶子节点的定义和功能2.1.1 节点2.1.2 分支2.1.3 叶子节点 2.2 树的深度和宽度的影响2.2.1 树的深度2.2.2 树的宽度 3. 决策树的构建方法3.1 基…...

FFplay介绍及命令使用指南

😎 作者介绍:欢迎来到我的主页👈,我是程序员行者孙,一个热爱分享技术的制能工人。计算机本硕,人工制能研究生。公众号:AI Sun(领取大厂面经等资料),欢迎加我的…...

php实现动态登录

简介: 效果:通过前端页面的注册,通过MD5将密码加密,发送到数据库,通过验证数据库的内容实现登录,以及各种保证安全的措施 实验环境:phphtmlcssmysql数据表,使用html css设计注册&a…...

Servlet2-HTTP协议、HttpServletRequest类、HttpServletResponse类

目录 HTTP协议 什么是HTTP协议 HTTP协议的特点 请求的HTTP协议格式 GET请求 POST请求 常用的请求头说明 哪些是GET请求,哪些是POST请求 响应的HTTP协议格式 常见的响应码说明 MIME类型说明 HttpServletRequest类 作用 常用方法 如何获取请求参数 po…...

探索数据的内在世界:sklearn中分层特征聚类标签的可视化技术

探索数据的内在世界:sklearn中分层特征聚类标签的可视化技术 在机器学习中,聚类是一种探索数据结构的强大工具。对于具有分层特征的数据,如文本、时间序列或分类标签,聚类结果的可视化可以提供深入的洞见。本文将详细介绍如何在s…...

airtest定位方法

airtest定位方法 最近遇到一个比较新颖的airtest方法,分享给大家。一键三连; airtest是一款用于自动化测试的Python库,被广泛应用于移动应用和游戏的测试中。在进行自动化测试时,定位元素是非常重要的一步,因为只有准…...

排列组合 n*(n-1)*(n-m+1)

n*(n-1)*(n-m1)/m! --# 组合 n*(n-1)*(n-m1)/m! local function get_combinations(n,m) c 1 c0 1 for i 1,m do c c*(n-i1) c c/i end return math.floor(c) end print(get_combinations(10,6)) 打印出来为:210...

Python面试整理-数据处理和分析

在Python中,数据处理和分析是一项非常重要的应用,得益于丰富的第三方库和工具,Python已经成为数据科学家和分析师的首选语言之一。以下是进行数据处理和分析时常用的工具和方法: 1. 数据处理 a. Pandas ● 功能: Pandas 提供了强大的 DataFrame 结构,使得数据操作和预处理…...

职业教育计算机网络综合实验实训室建设应用案例

近年来,职业教育在培养技能型人才方面发挥着越来越重要的作用。然而,传统的计算机网络技术教学模式往往重理论、轻实践,导致学生缺乏实际操作能力和职业竞争力。为了改变这一现状,唯众结合职业教育特点,提出了“教、学…...

【Docomo】5G

我们想向您介绍第五代移动通信系统“5G”。 5G 什么是5G?支持5G的技术什么是 5G SA(独立)?实现高速率、大容量的5G新频段Docomo的“瞬时5G”使用三个宽广的新频段 什么是5G? 5G(第五代移动通信系统&#x…...

Servlet详解(Servlet源码)

Servlet Servlet是运行在Web服务器或应用服务器上的小程序,它作为来自Web浏览器或其他HTTP客户端的请求和HTTP服务器上的数据库或应用程序之间的中间层。Servlet能够接收来自客户端的基于HTTP协议的请求,并且对请求进行响应。 Servlet是用来处理客户端请…...

仓颉--接收控制台输入

package projectNameimport std.console.*main() {Console.stdOut.write("请输入信息1:")var c Console.stdIn.readln() // 输入:你好,请问今天星期几?var r c.getOrThrow()Console.stdOut.writeln("输入的信息1…...