使用zipkin实现链路跟踪

使用zipkin我们可以清楚的看到服务的调用过程。尤其是当多个服务相互调用的时候。

实现一个简单的zipkin的方法如下

创建zipkin server

配置pom文件

		<dependency>
			<groupId>com.netflix.hystrixgroupId>
			<artifactId>hystrix-javanicaartifactId>
		dependency>
		<dependency>
			<groupId>io.zipkin.javagroupId>
			<artifactId>zipkin-serverartifactId>
			<version>2.11.8version>
		dependency>
		<dependency>
			<groupId>io.zipkin.javagroupId>
			<artifactId>zipkin-autoconfigure-uiartifactId>
			<version>2.11.8version>
		dependency>

配置yml

server:
  port: 6001

spring:
  application:
    name: ZipkinServer6001
  sleuth:
    # 不对本身跟踪
    enabled: false

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:7001/eureka/
management.metrics.web.server.auto-time-requests: false

创建启动类

@SpringBootApplication
@EnableDiscoveryClient
@EnableCircuitBreaker
@EnableZipkinServer
public class ZipkinServerApplication6001 {

	public static void main(String[] args) throws Exception {
		new SpringApplicationBuilder(ZipkinServerApplication6001.class).web(true).run(args);
	}

}

客户端配置

需要引入zipkin的相关依赖,如下

修改pom

		<dependency>
			<groupId>org.springframework.cloudgroupId>
			<artifactId>spring-cloud-sleuth-zipkinartifactId>
		dependency>
		<dependency>
			<groupId>org.springframework.cloudgroupId>
			<artifactId>spring-cloud-starter-sleuthartifactId>
		dependency>

修改yml

这里新增了zipkin服务端的路径

spring:
  application:
    name: RESTAPI
  zipkin:
    base-url: http://localhost:6001

测试

使用zipkin实现链路跟踪_第1张图片

使用zipkin实现链路跟踪_第2张图片

可以看到我们访问的http://localhost:8001/feignClass/class/1时的调用过程是先调用gateview8001,后代调用restapi 服务。

你可能感兴趣的:(微服务)