Zipkin搭建分布式链路跟踪平台 -- 第二篇

  • 这一篇,我们搭建Http + Mysql 和Kafka + mysql两种模式

Http + Mysql

  • Http + Mysql 模式,在第一篇的基础上,client端不需要做修改,只需要修改server端即可,server端添加mysql的相关配置和依赖即可,添加下面的依赖:
依赖:
<!--ZipKin组件持久化依赖-->        
    <dependency>            
        <groupId>io.zipkin.java</groupId>           
        <artifactId>zipkin-storage-mysql</artifactId>
    </dependency>       
    <dependency>            
        <groupId>org.springframework.boot</groupId>             
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <dependency>
         <groupId>mysql</groupId>
         <artifactId>mysql-connector-java</artifactId>      
    </dependency>
 配置:
 zipkin.storage.type = mysql
spring.datasource.url = jdbc:mysql://192.168.xx.xx:3306/xxx
spring.datasource.username = xxx
spring.datasource.password = xxx
spring.datasource.driver-class-name = com.mysql.jdbc.Driver
spring.datasource.schema[0] = classpath:/xxx.sql
spring.datasource.initialize = true
spring.datasource.continue-on-error = true

kafka + Mysql

  • 使用kafka做消息队列传输消息,可以增大吞吐量,提高性能,同事client端不依赖server端了,只依赖kafka,server端挂了也不影响,这种模式client和server端都需要添加对kafka的支持,因此与前面http的通信方式不同,依赖也有很大不同;
Client端
依赖:
<!--zipkin with kafka begin-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-sleuth</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-sleuth-zipkin-stream</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>io.zipkin.java</groupId>
                    <artifactId>zipkin-server</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-stream-kafka</artifactId>
        </dependency>
        <!--zipkin with kafka end-->
        没有写版本号,需要添加以下配置:
        <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Dalston.SR5</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
配置:
spring.sleuth.sampler.percentage = 1 #默认0.1
spring.sleuth.enabled = true        #默认true
spring.cloud.stream.kafka.binder.brokers = 192.168.xx.xx:9092  #可以配置多个
spring.cloud.stream.kafka.binder.zkNodes = 192.168.xx.xx:2181  #可以配置多个
Server端
依赖:
<!--ZipKin组件依赖-->
        <dependency>
            <groupId>io.zipkin.java</groupId>
            <artifactId>zipkin-autoconfigure-ui</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-sleuth-zipkin-stream</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-stream-kafka</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-sleuth</artifactId>
        </dependency>
        <!--ZipKin组件依赖End-->
        不写版本号需要添加:
        <dependencyManagement>
             <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>${spring.cloud.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
配置:
(添加下面关于kafka的配置,其余的配置不变)
spring.sleuth.enabled=false
spring.sampler.percentage=1
spring.cloud.stream.kafka.binder.brokers=192.168.xx.xxx:9092
spring.cloud.stream.kafka.binder.zkNodes=192.168.xx.xxx:2181
spring.cloud.stream.kafka.binder.min-partition-count=1
spring.cloud.stream.kafka.binder.auto-add-partitions=true
spring.cloud.stream.kafka.binder.replication-factor=1
更换注解:
HTTP形式使用注解@EnableZipkinServer,中间件形式使用注解@EnableZipkinStreamServer
总结
  • 到此搭建完成,后面介绍kafka+ES的搭建方式

猜你喜欢

转载自blog.csdn.net/my_momo_csdn/article/details/81587138
今日推荐