IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Istio的分布式追踪Jaeger -> 正文阅读

[大数据]Istio的分布式追踪Jaeger

一、认识分布式追踪
  相比传统的"巨石"应用,微服务的一个主要变化是将应用中的不同模块拆分为了独立的进程。在微服务架构下,原来进程内的方法调用成为了跨进程的远程方法调用。相对于单一进程内的方法调用而言,跨进程调用的调试和故障分析是非常困难的,难以适应传统的代码调试程序或者日志打印来对分布式的调用过程进行查看和分析。
  在这里插入图片描述
  如上图右边所示,微服务架构中系统各个微服务之间存在复杂的调用关系。一个来自客户端的请求在其业务处理中经过了多个微服务进程。我们如果想要对该请求的端到端调用过程进行完整的分析,则必须将该请求经过的所有进程的相关信息都收集起来并关联在一起,这就是"分布式追踪"。

二、认识Jaeger
  Jaeger是由Uber开源的分布式追踪系统,它采用Go语言编写,主要借鉴了Google Dapper论文和Zipkin的设计,兼容OpenTracing以及Zipkin追踪格式,目前已经成为CNCF基金会的开源项目。
  Jaeger的相关术语:
  Span:是Jaeger的逻辑工作单元,具有请求名称、请求开始时间、请求持续时间。Span会被嵌套并排序以展示服务间的关系。
  在这里插入图片描述
  Trace:是Jaeger在微服务系统中记录的完整的请求执行过程,并显示为Trace,Trace是系统的数据/执行路径,一个端到端的Trace由一个或者多个Span组成。
  Envoy原生支持Jaeger,追踪所需x-b3开头的Header和x-request-id在不同的服务之间由业务逻辑进行传递,并由Envoy上报给Jaeger,最终Jaeger生成完整的追踪信息。
  在Istio中,Envoy和Jaeger的关系如下:
  在这里插入图片描述
  图中Front Envoy是指第一个接收到请求的Envoy Sidecar,它会负责创建Root Span并追加到请求Header内,请求到达不同的服务时,Envoy Sidecar会将追踪信息进行上报处理。
  Jaeger的内部组件与ELK日志系统架构有一定的相似性:
  在这里插入图片描述
  Jaeger主要由以下几个组件构成:
  Client:Jaeger客户端,是OpenTracing API的具体语言实现,可以为各种开源框架提供分布式追踪工具。
  Agent:监听在UDP端口的守护进程,以DaemonSet的方式部署在宿主机或以Sidecar方式注入容器内,屏蔽了Client和Collector之间的细节以及服务发现。用于接收Client发送过来的追踪数据,并将数据批量发送至Collector。
  Collector:用来接收Agent发送的数据,验证追踪数据,并建立索引,最后异步地写入到后端存储,Collector是无状态的。
  DataBase:后端存储组件,支持内存、Cassandra、Elasticsearch、Kafka的存储方式
  Query:用于接收查询请求,从数据库检索并通过UI展示
  UI:使用React编写,用于UI界面展示

三、运行Jaeger
1)运行Jaeger

?  ~ istioctl dashboard jaeger       
http://localhost:16686

在这里插入图片描述

2)查看链路跟踪数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3)查看服务依赖
在这里插入图片描述

4)对比不同请求的差异
在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-02 10:53:03  更:2021-08-02 10:53:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 19:16:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码