021 简单链路追踪 - zipkin

1 编写zipkin server

    pom依赖:

  	<dependencies>
		<dependency>
		    <groupId>io.zipkin.java</groupId>
		    <artifactId>zipkin-server</artifactId>
		</dependency>
		<dependency>
		    <groupId>io.zipkin.java</groupId>
		    <artifactId>zipkin-autoconfigure-ui</artifactId>
		</dependency>
  	</dependencies>

    启动类,添加 @EnableZipkinServer 注解:

@EnableZipkinServer
@SpringBootApplication
public class ZipkinApplication {
	public static void main(String[] args) {
		SpringApplication.run(ZipkinApplication.class, args);
	}
}

    配置文件 application.yml:

server:
  port: 8088

spring:
  application:
    name: zipkin

    启动项目,访问:http://localhost:8088,因为此时没有整合其他微服务,没有接口调用信息,这里就没有相关信息显示

2 微服务整合zipkin

    这里准备两个微服务:zipkin-sales和zipkin-user,这两个项目的pom除了提供的接口不一样之外,其他的均相同,其中 zipkin-sales 对外提供接口  /sales/queryGoodsList,/sales/queryGoodsList 接口内部调用 zipkin-user 的 /user/getUserInfo 接口,基于微服务之间的调用来观察链路信息。

    pom依赖:

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

    启动类,没有特殊注解:

@SpringBootApplication
@EnableDiscoveryClient
public class SalesApplication {
    public static void main(String[] args) {
        SpringApplication.run(SalesApplication.class,args);
    }

}

    配置文件 application.yml:

    spring.zipkin.baseUrl 是 zipkin 的地址

    spring.sleuth.sampler.percentage 采样率,默认0.1,因为是测试,这里设置为1,保证每次都会被记录

server:
  port: 8081

spring:
  application:
    name: sales
  zipkin:
    baseUrl: http://localhost:8088
  sleuth:
    sampler:
      percentage: 1
    
eureka:
  client:
    serviceUrl: 
      defaultZone: http://localhost:8761/eureka/
  instance:
    prefer-ip-address: true

    启动两个项目,调用 http://127.0.0.1:8081/sales/queryGoodsList 接口之后访问 zipkin 界面:

    点击 Find Traces 可以观察相关信息,点击 Dependencies 可以看到项目依赖关系:

3 代码

    simple-core:https://code.aliyun.com/995586041/core-simple.git

    eureka:https://code.aliyun.com/995586041/eureka.git

    zipkin-server:https://code.aliyun.com/995586041/zipkin.git

    zipkin-sales:https://code.aliyun.com/995586041/zipkin-sales.git

    zipkin-user:https://code.aliyun.com/995586041/zipkin-user.git

猜你喜欢

转载自my.oschina.net/u/2937605/blog/1809872