021 簡單鏈路追蹤 - zipkin

1 編寫zipkin server

    pom依賴:java

<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 註解:git

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

    配置文件 application.yml:spring

server:
  port: 8088

spring:
  application:
    name: zipkin

    啓動項目,訪問:http://localhost:8088,由於此時沒有整合其餘微服務,沒有接口調用信息,這裏就沒有相關信息顯示bash

2 微服務整合zipkin

    這裏準備兩個微服務:zipkin-sales和zipkin-user,這兩個項目的pom除了提供的接口不同以外,其餘的均相同,其中 zipkin-sales 對外提供接口  /sales/queryGoodsList,/sales/queryGoodsList 接口內部調用 zipkin-user 的 /user/getUserInfo 接口,基於微服務之間的調用來觀察鏈路信息。app

    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:ui

    spring.zipkin.baseUrl 是 zipkin 的地址spa

    spring.sleuth.sampler.percentage 採樣率,默認0.1,由於是測試,這裏設置爲1,保證每次都會被記錄code

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

相關文章
相關標籤/搜索