31springcloud中整合zipkin进行服务跟踪zipkin-client

     2022-05-04     528

关键词:

上一篇简介了Zipkin Server的搭建,但是从Spring boot 2.x版本后,Zipkin官网已经不再推荐自己搭建定制Zipkin,而是直接提供了编译好的jar包。详情可以查看官网:
https://zipkin.io/pages/quickstart.html
技术图片
有了Zipkin Server还不能对微服务的调用链路进行人祸监控,Zipkin Server可以被认为是一个数据处理和展示中心,那它的数据哪里来呢?需要Zipkin Client作为代理连接到Zipkin Server源源不断的上送过来。今天讲解一下如何在微服务中引入Zipkin Client,然后结合Zipkin Server监控各微服务间的调用链路。整体调用链路图如下:
技术图片
涉及的项目:
注册中心:sc-eureka-server
Zipkin server:sc-zipkin-server
微服务:sc-zipkin-client-web、sc-zipkin-client-service

1、新建项目sc-zipkin-client-service,对应的pom.xml文件如下

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>spring-cloud</groupId>
    <artifactId>sc-zipkin-client-service</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>sc-zipkin-client-service</name>
    <url>http://maven.apache.org</url>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.4.RELEASE</version>
    </parent>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

        </dependencies>
    </dependencyManagement>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
</project>

备注:主要引入了spring-cloud-starter-zipkin,说明这是一个zipkin client。

2、新建配置文件application.yml

eureka:
    client:
        serviceUrl:
            defaultZone: http://localhost:5001/eureka/

server:
    port: 9201
spring:
    application:
        name: sc-zipkin-client-service
    zipkin:
base-url: http://localhost:9000

技术图片

3、sc-zipkin-client-service(普通的微服务)项目其他项目文件如下图

技术图片

4、新建项目sc-zipkin-client-web,对应的pom.xml文件如下

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>spring-cloud</groupId>
    <artifactId>sc-zipkin-client-web</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>sc-zipkin-client-web</name>
    <url>http://maven.apache.org</url>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.4.RELEASE</version>
    </parent>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

        </dependencies>
    </dependencyManagement>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
    </dependencies>
</project>

备注:同样引入了spring-cloud-starter-zipkin,说明是一个zipkin client

5、新建配置文件application.yml

eureka:
    client:
        serviceUrl:
            defaultZone: http://localhost:5001/eureka/

server:
    port: 9202
spring:
    application:
        name: sc-zipkin-client-web
        zipkin:
        base-url: http://localhost:9000

技术图片
6、sc-zipkin-client-web(普通的微服务)项目其他项目文件如下图

技术图片

7、验证
项目启动顺序:
sc-eureka-server
sc-zipkin-server
sc-zipkin-client-service
sc-zipkin-client-web
访问注册中心:http://127.0.0.1:5001/
服务都已经注册成功
技术图片

访问Zinkin Server:http://localhost:9000/zipkin/
技术图片
目前zipkin server没有记录任何的微服务调用链路数据。
分别访问接口:
http://127.0.0.1:9202/user/listUser
技术图片
http://127.0.0.1:9202/user/getUser/1
技术图片
再次查看Zipkin Server(如果没有出现可以多访问几次接口,Zipkin需要更多的监控数据)
技术图片

技术图片

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

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

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

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

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

...哪里出问题了,巴拉巴拉....,回归正题,今天我们使用SpringCloud组件,来分析一下微服务架构中系统调用的瓶颈问题~SpringCloud链路追踪组件Sleuth实战官网  主要功能:做日志埋点什么是Sleuth  专门用于追踪每个请求的完整调... 查看详情

解决springcloud整合zipkin的报错异常code:404msg:servicenotfound:default_group@@localhost(代码片段)

问题复现依赖<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-zipkin</artifactId></dependency>配置spring:zipkin: base-url:http://loca 查看详情

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

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

解决springcloud整合zipkin的报错异常code:404msg:servicenotfound:default_group@@localhost(代码片段)

问题复现依赖<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-zipkin</artifactId></dependency>配置spring:zipkin: base-url:http://localhost:9411/sleuth: sampler: probability:1.0结果只要你的API被调用,... 查看详情

springcloud链路追踪sleuth+twitterzipkin中zipkin服务

2021年5月15日随笔springboot2.2.x版本以上,不建议自己写服务了,我尝试了很多方法没有成功,各种问题,所以需要下载它的jar包然后执行 下载地址:https://repo1.maven.org/maven2/io/zipkin/zipkin-server/2.23.2/zipkin-server-2.23.2-exec.jar下载完... 查看详情

微服务实践之全链路追踪(sleuth,zipkin)详解-springcloud(2021.0.x)-4(代码片段)

...自由转载出自:shusheng007文章目录前言链路追踪理论SpringCloud的实现方案Zipkin服务引入依赖配置使用总结源码前言本文将介绍微服务架构中关于链路追踪相关组件Sleuth与Zipkin的在SpringCloud入门使用。链路追踪为什么要进行链路... 查看详情

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

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

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

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

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

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

springcloud微服务分布式链路跟踪sleuth与zipkin

Zipkin是一个开放源代码分布式的跟踪系统,由Twitter公司开源,它致力于收集服务的定时数据,以解决微服务架构中的延迟问题,包括数据的收集、存储、查找和展现。它的理论模型来自于GoogleDapper论文。每个微服务向Zipkin报告... 查看详情

springcloud笔记八sleuthzipkin(代码片段)

zipkin服务端环境启动zipkin下载,进入github,找到Quick-start下载最新版本https://github.com/openzipkin/zipkin管理页面端口:9411在项目中配置sleuth、zipkinpom.xml <!--包含zipkin和sleuth--><dependency><groupId> 查看详情

springcloud使用zipkin实现链路跟踪

参考技术AZipkin主要提供链路追踪的可视化,原理为:在服务调用的请求和响应中加入ID,表明上下游请求的关系;利用这些关系;可以可视化分析服务调用链路和服务间的依赖关系。zipkin的依赖包含Sleuth的依赖。添加配置实现测... 查看详情

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

一、什么是Sleuth  为服务之间调用提供链路追踪。通过Sleuth可以很清楚的了解到一个服务请求经过了哪些服务,每个服务处理花费了多长。从而让我们可以很方便的理清各微服务间的调用关系。二、Sleuth作用  2.1:耗时分析... 查看详情

java之springcloud微服务的链路追踪sleuth和zipkin(第三个阶段)springboot项目实现商品服务器端是调用(代码片段)

Java之SpringCloud微服务的链路追踪Sleuth和Zipkin(第三个阶段)【三】【SpringBoot项目实现商品服务器端是调用】一、微服务的链路追踪概述1、微服务架构下的问题2、Sleuth概述(1)简介(2)相关概念3、链路追... 查看详情

springcloud-config&bus&stream&sleuth+zipkin

SpringCloud-configSpringCloud-busSpringCloud-streamSpringCloud-sleuth、zipkin##Config>概念:分布式配置中心>作用:统一管理各个服务、环境配置、实现动态配置(优点:维护方便、灵活度比较高)>>![image-20200605101411241](imgimage-20200605101411 查看详情