pom.xml Code:
<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>com.joyce</groupId> <artifactId>joyce-component-zipkin</artifactId> <version>1.0</version> <packaging>jar</packaging> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.20.RELEASE</version> <relativePath /> </parent> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Edgware.SR5</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <!-- Spring Cloud --> <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-netflix-hystrix</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon</artifactId> </dependency> <!-- Spring Boot --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- zipkin --> <dependency> <groupId>io.zipkin.java</groupId> <artifactId>zipkin-server</artifactId> </dependency> <dependency> <groupId>io.zipkin.java</groupId> <artifactId>zipkin-autoconfigure-ui</artifactId> </dependency> <dependency> <groupId>io.zipkin.java</groupId> <artifactId>zipkin-autoconfigure-storage-elasticsearch-http</artifactId> <version>2.8.4</version> <optional>true</optional> </dependency> <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-sleuth-zipkin</artifactId> </dependency> <!-- zipkin --> <!-- 测试 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <!-- <version>3.8.1</version> --> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> </project>
application.properties configuration file code:
server.port=8740
spring.application.name=joyce-component-zipkin
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka,http://localhost:8762/eureka,http://localhost:8763/eureka
eureka.client.registerWithEureka=true
eureka.client.fetchRegistry=true
eureka.instance.instance-id=${spring.application.name}:${server.port}
eureka.instance.prefer-ip-address=true
#接受zipkin追踪,追踪数据会传导给turbine实时监控(如果存在)
spring.zipkin.enabled=true
spring.sleuth.feign.enabled=true
spring.sleuth.hystrix.strategy.enabled=true
spring.sleuth.sampler.percentage=1.0
spring.zipkin.base-url=http://joyce-component-zipkin
############################## ES单点连接 ######################
elasticsearch zipkin.storage.type = #
# zipkin.storage.elasticsearch.hosts = 192.168.10.140: 9200
# 100 zipkin.storage.elasticsearch.max-Requests =
# = zipkin.storage.elasticsearch.index Zipkin
# zipkin.storage.elasticsearch Shards = 0-.index
# zipkin.storage.elasticsearch.index-Replicas = 0 ############################## ES cluster connection, a user name and password ######################
zipkin.storage.type = elasticsearch // use elasticsearch storage zipkin tracking data
zipkin.storage.elasticsearch.cluster = cluster name joyce-elasticsearch // cluster
zipkin.storage.elasticsearch.hosts = 192.168.10.110: 9200,192.168.10.120: 9200,192.168.10.130: 9200
zipkin.storage.elasticsearch.timeout = 1000
zipkin.storage.elasticsearch.max-Requests = 100
zipkin.storage.elasticsearch.index = Zipkin when storing data zipkin //, ES data index to Zipkin prefixed example: Zipkin-2019-06-09
zipkin.storage.elasticsearch.date -separator = - // date separator ES index data, the default is "-"
zipkin.storage.elasticsearch.index-Shards. 6 // = number of cluster fragmentation
zipkin.storage.elasticsearch.index-replicas = 0 / / Preparation of the cluster (from) the number
zipkin.storage.elasticsearch. username = Elastic // username
zipkin.storage.elasticsearch. password = 1234567 // password
zipkin.storage.type prefix injected zipkin-autoconfigure-storage-elasticsearch-http-2.8.4.jar bag TracingZipkinElasticsearchHttpStorageAutoConfiguration class.
@ConditionalOnBean(Tracing.class) @ConditionalOnProperty(name = "zipkin.storage.type", havingValue = "elasticsearch") @Configuration class TracingZipkinElasticsearchHttpStorageAutoConfiguration {
zipkin.storage.elasticsearch prefix injected zipkin-autoconfigure-storage-elasticsearch-http-2.8.4.jar bag ZipkinElasticsearchHttpStorageProperties class.
@ConfigurationProperties("zipkin.storage.elasticsearch") class ZipkinElasticsearchHttpStorageProperties implements Serializable {
SpringCloud start class code:
package com.joyce.zipkin; import org.slf4j.LoggerFactory; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.cloud.netflix.hystrix.EnableHystrix; import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard; import zipkin.server.internal.EnableZipkinServer; @SpringBootApplication @EnableZipkinServer @EnableHystrix @EnableHystrixDashboard @EnableEurekaClient public class ComponentZipkinApplication { private static final org.slf4j.Logger LOG = LoggerFactory.getLogger(ComponentZipkinApplication.class); public static void main(String[] args) { SpringApplication.run(ComponentZipkinApplication.class, args); } }