springcloud整合分布式链路追踪系统sleuth和zipkin实战,分析系统瓶颈

陈彦斌      2022-04-04     333

关键词:

导读

  微服务架构中,是否遇到过这种情况,服务间调用链过长,导致性能迟迟上不去,不知道哪里出问题了,巴拉巴拉....,回归正题,今天我们使用SpringCloud组件,来分析一下微服务架构中系统调用的瓶颈问题~

SpringCloud链路追踪组件Sleuth实战

官网

  主要功能:做日志埋点

什么是Sleuth

  专门用于追踪每个请求的完整调用链路。

  例如:【order-service,f674cc8202579a50,4727309367e0b514,false】

    • 第一个值:spring.application.name
    • 第二个值,sleuth生成的一个ID,交Trace ID,用来标识一条请求链路,一条请求链路中包含一个Trace ID,多个Span ID
    • 第三个值:spanid基本的工作单元,获取元数据,如发送一个http请求
    • 第四个值:false,是否要将该信息输出到zipkin服务中来收集和展示

添加依赖

  牵扯到的服务都得加这个依赖!(我这里是在order-service、product-service加的依赖)

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-sleuth</artifactId>
        </dependency>

启动整个微服务测试

部署可视化链路追踪Zipkin

简介

  大规模分布式系统的APM工具,基于Google Dapper的基础实现,和Sleuth结合可以提供可视化web界面分析调用链路耗时情况。

官网

  点我直达

部署

  点我直达

  这里我使用下载源码的方式

# get the latest source
git clone https://github.com/openzipkin/zipkin
cd zipkin
# Build the server and also make its dependencies
./mvnw -DskipTests --also-make -pl zipkin-server clean install
# Run the server
java -jar ./zipkin-server/target/zipkin-server-*exec.jar

备注

  因为种种原因,从github上下载这个源码包,非常慢,可以使用这种方式解决:点我直达

git clone https://gitee.com/mirrors/zipkin.git

cd zipkin

mvn -DskipTests clean package

java -jar ./zipkin-server/target/zipkin-server-*exec.jar

启动

  地址:ip:9411

Zpikin+Sleuth整合

添加依赖

  涉及到的服务都得加!(我这里是在order-service、product-service加的依赖)

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

注意

  之前加过Sleuth依赖,现在加zipkin依赖,2.x的zipkin已经包含sleuth了,这里可以把之前的sleuth依赖去掉

修改配置文件

  默认指向的zipkin地址为本机地址:http://localhost:9411/

  默认收集百分比为:10%

application.properties

# 指定zipkin地址
spring.zipkin.base-url=http://localhost:9411/
# 配置采样百分比,开发环境可以设置:1,也就是100%,生产环境可以设置小一点
spring.sleuth.sampler.probability=1

启动并分析数据

  通过这个分析,我们可以知道,微服务中那个服务耗时多,可以在这个服务上做性能优化,可以考虑加:缓存、异步、算法等等~

源码下载

  好了,今天先到这,只可意会不可言传,自己体会他的好处~

链接: https://pan.baidu.com/s/1c4ZWufjmDgzgAAiOOzRg9A  密码: or12

 

springcloud(h版)二阶段学习---分布式请求链路追踪

...环出现高延迟或错误都会引起整个请求最后的失败。  SpringCloudSleuth提供了一套完整的服务跟踪的解决方案。在分布式系统中提供了追踪解决方案并且兼容支持了zipkin  官网 查看详情

sleuth+zipkin实现springcloud链路追踪(代码片段)

文章目录一、前言二、应用架构图三、快速了解Sleuth四、准备工作1、搭建Zipkin单机环境2、搭建naocos单机环境五、微服务整合Sleuth1、创建SpringBoot工程2、配置文件3、实现核心代码六、集成Zipkin1、引入客户端2、配置文件3、运行效... 查看详情

springcloud之链路追踪整合sleuth(十三)

前言SpringCloud是微服务中的翘楚,最佳的落地方案。在一个完整的微服务架构项目中,服务之间的调用是很复杂的,当其中某一个服务出现了问题或者访问超时,很难直接确定是由哪个服务引起的,所以就有了SpringCloudSleuth链路... 查看详情

sleuth+zipkin实现springcloud链路追踪(代码片段)

文章目录一、前言二、应用架构图三、快速了解Sleuth四、准备工作1、搭建Zipkin单机环境2、搭建naocos单机环境五、微服务整合Sleuth1、创建SpringBoot工程2、配置文件3、实现核心代码六、集成Zipkin1、引入客户端2、配置文件3、运行效... 查看详情

springcloud系列之链路追踪

参考技术ASpringCloud系列之EurekaSpringCloud系列之配置中心ConfigSpringCloud系列之gatewaySpringCloud系列之FeignSpringCloud系列之HystrixSpringCloud系列之链路追踪在微服务架构下,一次请求至少经过三四次服务调用完成,多则跨越七八个,那么问... 查看详情

浅议分布式链路追踪与日志的整合(代码片段)

本文内容.NET中的分布式追踪ActivitySource与Activity.NET与OpenTelemetry分布式追踪和日志整合NLog.DiagnosticSource自定义LayoutRenderer本文小结最近拜读了Artech大佬的新文章《几个Caller-特性的妙用》,可以说是受益匪浅。不过,对我而言,最... 查看详情

十八.springcloud极简入门-zipkin整合rabbitmq使用elasticsearch存储的高性能链路追踪方案

前言之前讲过一个版本的Zipkin链路追踪,《Sleuth整合ZipKin链路追踪》,讲了Zipkin的工作流程,以及简单集成Zipkin,这篇文章将会对之前的方案进行升级,使用RabbitMQ异步收集数据,使用ElasticSearch进行数据存... 查看详情

浅议分布式链路追踪与日志的整合(代码片段)

本文内容.NET中的分布式追踪ActivitySource与Activity.NET与OpenTelemetry分布式追踪和日志整合NLog.DiagnosticSource自定义LayoutRenderer本文小结最近拜读了Artech大佬的新文章《几个Caller-特性的妙用》,可以说是受益匪浅。不过,对我而言,最... 查看详情

springcloud分布式整合zipkin的链路跟踪

为什么使用zipkin?上篇主要写了:springcloud分布式日志链路跟踪从上篇中可以看出服务之间的调用,假设现在有十几台服务,那么在查找日志的时候比较繁琐、复杂,而且在查看调用的时候也会像蜘蛛网一样,量太大。这时候zipk... 查看详情

浅谈现公司的springcloud微服务框架

...错误或者质疑,欢迎留言提问,谢谢,祝大家新年快乐。springcloudSpringCloud是将分布式系统中一系列基础框架/工具进行整合的框架。其中包含:服务注册与发现、服务网关、熔断器、配置中心、消息中心、服务链路追踪等等。这... 查看详情

分布式链路追踪在字节跳动的实践

综述字节跳动在发展过程中,逐渐形成了十分复杂的超大规模微服务体系,对后端整体的可观测性解决方案提出了极高的要求。为了解决这个问题,基础架构智能运维团队自研链路追踪系统,将海量Metrics/Trace/Log数据进行整合与... 查看详情

十八.springcloud极简入门-zipkin整合rabbitmq使用elasticsearch存储的高性能链路追踪方案(代码片段)

前言之前讲过一个版本的Zipkin链路追踪,《Sleuth整合ZipKin链路追踪》,讲了Zipkin的工作流程,以及简单集成Zipkin,这篇文章将会对之前的方案进行升级,使用RabbitMQ异步收集数据,使用ElasticSearch进行数据存... 查看详情

springcloud系列微服务的链路追踪(代码片段)

微服务的链路追踪概述1、微服务架构下的问题2、Sleuth概述2.1、Sleuth简介2.2、相关概念2.3、链路追踪Sleuth入门3、Zipkin的概述3.1、ZipkinServer的部署和配置4、客户端Zipkin+Sleuth整合5、基于消息中间件收集数据5.1、RabbitMQ的安装与启... 查看详情

springcloud分布式链路跟踪sleuth+zipkin+elasticsear

...一个具体的实例来体会一把微服务链路追踪:本文使用的SpringCloudFinch 查看详情

springcloud分布式链路跟踪sleuth+zipkin+elasticsear

...一个具体的实例来体会一把微服务链路追踪:本文使用的SpringCloudFinch 查看详情

springcloud-springcloudalibaba之skywalking分布式链路跟踪;跨多服务追踪,集成日志(十五)(代码片段)

一、SkyWalking跨多服务追踪1、关闭防火墙,如果nacos使用MySQL持久化规则,则启动MySQL服务systemctlstopfirewalld2、启动单机版Nacos,浏览器输入http://192.168.133.129:8848/nacos[root@eureka8761~]#cd/opt/software/nacos/bin/[ 查看详情

分布式链路追踪—overview

目录文章目录目录分布式链路追踪OpenTelemetryTracing分布式链路追踪分布式链路追踪最早在Google在2010年发表的论文《Dapper:aLarge-ScaleDistributedSystemsTracingInfrastructure》中提出。主要包含了2个概念:追踪(Trace):从Client发起的RequestX抵... 查看详情

什么是链路追踪?分布式系统如何实现链路追踪?

在分布式系统,尤其是微服务系统中,一次外部请求往往需要内部多个模块,多个中间件,多台机器的相互调用才能完成。在这一系列的调用中,可能有些是串行的,而有些是并行的。在这种情况下,... 查看详情