SpringCloud Sleuth链路监控&jaeger

写在前面
随着分布式微服务,云原生的时代的到来;带来了很多问题,包括微服务的治理,各个服务接口的调用情况,数据库的状态等,让开发维护诊断变得更加复杂,难以治理;Tracing Analysis链路追踪为分布式开发者提供完整的调用链路还原,调用量统计,应用依赖分析等可视化工具,可以帮助开发者快速诊断定位应用性能瓶颈,提高开发者在分布式微服务时代下的开发以及诊断效率。

CNCF开源组织

链路追踪产品架构图

在这里插入图片描述
客户端应用程序通过集成链路追踪的SDK上报数据,上传到控制台组件进行聚合,持久化


SpringCloud 使用Sleuth上传链路数据 到Jaege

Sleuth的原理

  • spanId
  • traceId

jaeger

jaeger[ˈjeɪgə]云原生官网原话:

Today, the Cloud Native Computing Foundation (CNCF) Technical Oversight Committee (TOC) voted to accept Jaeger as the 12th hosted project alongside Kubernetes, Prometheus, OpenTracing, Fluentd, Linkerd, gRPC, CoreDNS, containerd, rkt, CNI and Envoy.这是jaeger官网看着logo就知道是GO开发的(?),

在这里插入图片描述
jaeger能够解决定位的问题和官网架构图:

Distributed context propagation
Distributed transaction monitoring
Root cause analysis
Service dependency analysis
Performance / latency optimization
在这里插入图片描述

jaeger的相关组件:

  • jaeger Client: jaeger客户端实现了openTracing协议
  • jaeger Agent:jaeger

docker常用命令

  • 物理机时代:相比把应用直接部署在物理机上,这样管理起来很麻烦,不能直接利用好服务器资源,这样完全是垂直化的部署;
  • 虚拟化技术
    在这里插入图片描述
    更好利用服务器资源,很容易扩展服务节点;管理方便;但是每个虚拟机本身需要安装独立的操作系统,会占用一部分服务器资源。
  • 容器化技术
    在这里插入图片描述
    相比虚拟机技术,容器技术显得更加的轻量级,以应用进程为单位去隔离的,而虚拟机技术是以操作系统为单位去隔离资源的;更加适合分布式微服务的部署落地。
    在这里插入图片描述
    通过yum 下载docker镜像并安装,
    yum-config -manager --add-repo 镜像地址,如果慢可以使用阿里云镜像;
    yum clean; yum -y install docker -ce安装docker
    systemctl start docker启动docker;
    systemctl start docker.service; systemctl enable docker.service设置成开机自启动;
    vim ../daemon.json添加阿里云镜像加速
    systemctl deamon-reload, systemctl restart docker 然后重启docker
    docker pull tomcat添加Tomcat如果不置顶版本的话 默认pull最后的一个发行版本?
    docker inspect查看当前所有镜像容器的详细信息
    docker images 列出当前docker里面的镜像
    docker run -d --name first_tomcat -p 8080:8088 tomcat启动Tomcat,镜像启动run之后就会变成容器container,这样可以移植,与环境无关了?
    docker ps查看当前docker里面运行的容器,通常拿到对应的containerID进入
    docker exec -it containerId /bin/bash进入容器

关于Linux的Union File System

是有内核文件和用户文件系统组成,docker的基本命令mdir dockerfile->vim insert 命令->(FROM openjdk:8 \n WORKDIR /app \n COPY hello.java /app \n RUN [“javac”, “Hello.java”] \n ENTRYPOINT [“java”, “hello.class”])保存之后
docker build -t name -image . 会发现镜像依赖会进行复用
docker run imageNameor id-image 启动镜像


版权声明:本文为blackxc原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。