springcloud使用zipkin

1.首先搭建zipkin server

docker run -d -p 9411:9411 openzipkin/zipkin

也可以直接下载jar包运行

curl -sSL https://zipkin.io/quickstart.sh | bash -s
java -jar zipkin.jar

或者直接运行源码

# 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

通过http://localhost:9411/ 就可以看到zipkin页面了
springcloud使用zipkin_第1张图片

2.在springcloud中集成zipkin

引入依赖

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

此时运行会报错,提示版本问题

3.增加版本信息

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

springboot 2.0以上用 Finchley.SR1

4.增加application.yml配置

spring:
	zipkin: 
	    base-url: http://172.31.32.14:9411
	    enabled: true
	    locator:
	      discovery:
	        enabled: true

另外可以使用spring.sleuth.sampler.percentage来设置采集比例,默认为0.1。

5.调用演示

在各个服务中添加上述内容后,进行调用,可以看到zipkin采集情况

springcloud使用zipkin_第2张图片
点击可以查看调用详情
springcloud使用zipkin_第3张图片

6.可能会遇到的问题

可能会遇到一些包的冲突,log4j,HystrixConcurrencyStrategy等。
报错如需要一个单例bean,但给了两个等。
可以使用pom.xml文件中exclusion标签进行排除,或者使用手动指定如下

@Configuration
public class ZipkinConfiguration {
    @Autowired
    private FeignHystrixConcurrencyStrategyIntellif feignHystrixConcurrencyStrategyIntellif;
    @Bean
    @Primary
    public HystrixConcurrencyStrategy getHystrixStrategy(){
        return feignHystrixConcurrencyStrategyIntellif;
    }
}

以上

你可能感兴趣的:(springcloud,java,压测,spring,boot,java)