`
liang100100
  • 浏览: 37389 次
  • 性别: Icon_minigender_2
  • 来自: 苏州
文章分类
社区版块
存档分类
最新评论

zipkin搭建

 
阅读更多
Springboot 2.0.x 引入链路跟踪Sleuth及Zipkin

Zipkin是一种分布式跟踪系统,它有助于收集解决微服务架构中得延迟问题所需的时序数据,它管理这些数据的收集和查找。

1. 架构概述

跟踪器存在于您的应用程序中,并记录有关发生的操作的时间和元数据。他们经常使用库,因此它们的使用对用户是透明的。例如,已检测的Web服务器会在收到请求时以及何时发送响应时进行记录。收集的跟踪数据称为Span。

编写仪器是为了安全生产并且开销很小。出于这个原因,它们只在带内传播ID,以告诉接收器正在进行跟踪。Zipkin带外报告已完成的跨度,类似于应用程序异步报告度量标准的方式。

例如,在跟踪操作并且需要发出传出的http请求时,会添加一些标头来传播ID。标头不用于发送操作名称等详细信息。

将数据发送到Zipkin的检测应用程序中的组件称为Reporter。记者通过几种传输之一将跟踪数据发送到Zipkin收集器,这些收集器将跟踪数据保存到存储中。稍后,API会查询存储以向UI提供数据。

Zipkin作为一个收藏家,一旦跟踪数据到达Zipkin收集器守护程序,它就会被Zipkin收集器验证,存储和索引查找。

Zipkin查询服务,一旦数据被存储和索引,我们需要一种方法来提取它。查询守护程序提供了一个简单的JSON API,用户查找和检索跟踪。

参考官网:https://zipkin.io/

2. 快速开始

本文,我们将介绍构建和启动Zipkin实例,以便在本地检查Zipkin。根据官网显示,有三种选择:使用Java、Docker或从源代码运行。

如果您熟悉Docker,这是首选的方法。如果您不熟悉Docker,请尝试通过Java或源代码运行。

Zipkin分为两端,一个是Zipkin服务端,一个是Zipkin客户端(微服务应用)。客户端会配置服务端的URL地址,一旦服务间调用的时候,会被配置在微服务里面的Sleuth的监听器监听,并生成相应的Trace和Span信息发送给服务端。

发送的方式主要有两种,一种是Http报文的方式,还有一种是消息总线的方式如:RabbitMQ

我们这边采用的是Http报文的方式。



Zipkin服务端构建

1. 引入依赖

解析:主要引入两个Jar:zipkin-server、zipkin-autoconfigure-ui,其中对应的版本为:2.12.2。

zipkin-server 本身包含了 log4j,如果系统已经引入log4j包,为了避免冲突,需要在此处将本jar包去除。

<!-- zipkin--> 
		<dependency>
		    <groupId>io.zipkin.java</groupId>
		    <artifactId>zipkin-server</artifactId>
		    <version>${zipkin.version}</version>
		</dependency> 
		<!-- 引入zipkin-server 图形化界面 --> 
		<dependency>
		    <groupId>io.zipkin.java</groupId>
		    <artifactId>zipkin-autoconfigure-ui</artifactId>
			<version>${zipkin.version}</version>
			<scope>runtime</scope>
		</dependency>  


server:
  port: 10011
  
spring: 
    application: 
        name: sipsd-zipkin-server

#================================eureka客户端基础配置==============================   
eureka:  
  instance:  
    preferIpAddress: true
    ipAddress: 127.0.0.1
    leaseRenewalIntervalInSeconds: 5
    leaseExpirationDurationInSeconds: 10
    instanceId: ${spring.cloud.client.ipAddress}:${server.port}
  client:
    service-url:
      defaultZone: http://127.0.0.1:20001/eureka/
    healthcheck:
      enabled: true  
   

management:
    metrics:
       web:
          server:
            auto-time-requests: false
   


注:如果配置文件中没有添加“management.metrics.web.server.auto-time-requests=false”,默认为 开启自动检测请求

在启动zipkin-server过程中,会报以下问题:

java.lang.IllegalArgumentException: Prometheus requires that all meters with the same name have the same set of tag keys. There is already an existing meter containing tag keys [method, status, uri]. The meter you are attempting to register has keys [exception, method, status, uri].

解决方案:
a、配置文件中增加:management.metrics.web.server.auto-time-requests=false设置为false,默认为true

b、重写WebMvcTagsProvider,目的是去掉 WebMvcTags.exception(exception)


4. 启动zipkin-server服务

package com.sinosoft;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import zipkin2.server.internal.EnableZipkinServer;

/**
 * @ClassName: ZipkinApplication
 * @Description: 调用链服务启动入口 
 */
@SpringBootApplication
@EnableDiscoveryClient
@EnableZipkinServer
public class ZipkinApplication {
    public static void main(String[] args) {
        SpringApplication.run(ZipkinApplication.class, args);
    }
}


Zipkin客户端构建

1. 引入依赖

<!-- zipkin 调用链  spring-cloud-starter-zipkin 已经包含了 spring-cloud-starter-sleuth--> 
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-zipkin </artifactId>
		    <version>2.0.3.RELEASE</version>
		</dependency> 

2. 配置文件
# 调用链 Sleuth + ZipKin
server:
  port: 7013 

    
spring: 
    application: 
        name: sipsd-zipkin-client2
    zipkin:
         base-url: http://127.0.0.1:10011/ #指定zipkin的服务器
         locator:
            discovery:
               enabled: true    #支持通过服务发现定位主机名
    sleuth:
       web:
         client:
           enabled: true 
       sampler:
            probability: 1.0 #0.1-1.0 1.0采样率为100%,采集服务的全部追踪数据 
    
         
#================================eureka客户端基础配置==============================   
eureka:  
  instance:  
    preferIpAddress: true
    ipAddress: 127.0.0.1
    leaseRenewalIntervalInSeconds: 5
    leaseExpirationDurationInSeconds: 10
    instanceId: ${spring.cloud.client.ipAddress}:${server.port}
  client:
    service-url:
      defaultZone: http://127.0.0.1:20001/eureka/
    healthcheck:
      enabled: true  



Zipkin效果展示

zipkin服务端及客户端启动之后,访问:http://localhost:10011/zipkin
分享到:
评论

相关推荐

    「Java分享客栈」随时用随时翻:微服务链路追踪之zipkin搭建.doc

    Java微服务链路追踪之Zipkin搭建 微服务链路追踪是微服务治理方案中的一项必修课,SpringCloud的组件其实使用很简单,但是在生产环境中真正令人头疼的问题往往是软件维护,接口在微服务间的调用究竟哪个环节出现了...

    windows环境搭建调用链监控 spring cloud+es+kafka+zipkin

    本教程将聚焦于如何利用Spring Cloud、Elasticsearch (ES)、Kafka和Zipkin搭建这样的系统。首先,我们逐一解析这些组件的关键知识点。 **1. Spring Cloud** Spring Cloud是基于Spring Boot设计的一系列微服务框架,...

    zipkin-server jar.zip

    spring cloud zipkin服务链路跟踪server相关jar包,下载完成之后使用java -jar zipkin-server-2.12.9-exec.jar方式运行,就能启动zipkin-server,不建议自己搭建zipkin-server

    zipkin_server.rar

    总的来说,`zipkin-server-2.12.9-exec.jar` 是启动 Zipkin 服务器的关键组件,它使得我们能够在本地快速搭建一个分布式追踪系统,帮助我们理解和优化微服务架构中的性能瓶颈。通过集成 Zipkin 客户端,我们可以获取...

    java学习之Zipkin数据持久化配置

    上一篇我们了解了Zipkin的基础知识以及Zipkin的服务端搭建。 在使用过程中很多同学发现了他的秘密,Zipkin模式将数据保存在内存中,当我们重启后,追踪数据便会丢失。其实,Zipkin也支持将追踪数据保存到MySql或者...

    zipkin 服务端和客户端代码

    二、Zipkin 服务端的搭建与配置 1. **安装**:通常通过 Docker 或者直接下载源码进行编译安装。 2. **配置存储**:根据需求选择合适的存储后端,并在配置文件中设置相关参数。 3. **启动服务**:运行 Zipkin 服务端...

    zipkin-server-2.12.9-exec.jar

    标签 "zipkin" 表明这个 JAR 文件与 Zipkin 项目紧密相关,可能是在搭建 Zipkin 服务器时需要用到的关键组件。 关于压缩包内的 "zipkin" 文件,这可能是 Zipkin 的配置文件或者额外的资源文件,用于定制服务器的...

    zipkin-server-2.10.1-exec.zip

    Zipkin 是一个分布式追踪系统,它...综上,"zipkin-server-2.10.1-exec.zip" 是一个用于搭建 Zipkin 分布式追踪系统的工具,包含了运行 Zipkin 服务器所需的全部资源,通过它可以有效地监控和优化微服务架构的性能。

    最新 zipkin-server-2.23.2-exec.jar.7z

    总的来说,`zipkin-server-2.23.2-exec.jar` 是一个用于运行 Zipkin 分布式追踪系统的可执行文件,通过它,你可以快速地搭建起一个追踪系统,帮助诊断和优化你的微服务架构。在使用过程中,合理配置和集成至关重要,...

    zipkin-server-2.12.9.jar

    zipkin-server 端工具,主要是爲了顯示web端的可見。是比較好的zookeeper可視化工具,部署和搭建也是比較簡單的

    zipkin.zip

    在搭建Spring Cloud Sleuth+Zipkin服务链路追踪之前,提一下一个版本问题,在SpringBoot2.0之前的版本,Zipkin服务端,也就是可视化界面,需要自己新建项目引入依赖搭建,如同搭建eureka注册中一样;但是在...

    zipkin-server-2.12.9-exec.jar下载,用于启动zipkin来进行链路检测

    通过下载和运行"zipkin-server-2.12.9-exec.jar",你可以搭建一个本地的Zipkin服务器,结合Spring Cloud Actuator实现对微服务的链路监控。这样,你就能更好地理解和优化你的Spring Cloud应用的性能,确保服务的稳定...

    SpringCloud可视化链路追踪系统Zipkin部署过程

    SpringCloud 可视化链路追踪系统 Zipkin 部署过程 本文主要介绍了 SpringCloud 可视化链路追踪系统 Zipkin 部署过程,并提供了详细的示例代码,对大家的学习或者工作具有一定的参考学习价值。 什么是 Zipkin? ...

    zipkin-server-2.21.7-exec.jar

    在 Spring Boot 2.0 版本之后,官方已不推荐自己搭建Zipkin服务端了,而是直接提供了编译好的 jar 包。2020 - 09 - 28

    zipkin-server-2.12.9-exec.zip

    本文将详细介绍如何利用这两个工具搭建一套完整的链路监控系统,并对`zipkin-server-2.12.9-exec.zip`这个压缩包中的核心组件进行解析。 首先,我们要知道SpringCloud Sleuth 是Spring Cloud生态下的一个子项目,它...

    mircoservice分布式跟踪系统(zipkin+springboot).zip

    Spring Boot是基于Spring框架的快速开发工具,简化了Spring应用的初始搭建以及开发过程。它默认配置了很多常见的功能,如嵌入式Web服务器、数据源、MVC、安全等,使得开发者可以快速地构建一个独立运行的、生产级别...

    zipkin-mysql-0.0.4.zip

    使用Udash-Core,开发者可以快速搭建出美观的Web应用,同时享受到Scala带来的静态类型检查和强大的类型推断,从而减少代码错误,提高代码质量。 结合标签"开源项目",我们可以知道Zipkin和Udash都是遵循开放源代码...

Global site tag (gtag.js) - Google Analytics