Spring Cloud 微服务链路追踪使用zipklin、kafka、es数据库

由于工作需要使用到微服务链路追踪,于是到网上找资料,然而发现大部分使用zipkin做链路追踪使用的是Spring Cloud D版本系列,而zipkinSpring Cloud E版本后开始做了很大的改动,本篇博客不阐述链路追踪概念,直接上配置。

环境

  • jdk 1.8
  • springboot 1.5.13.RELEASE
  • springcloud Edgware.SR3
  • kafka_2.11-2.1.1
  • zookeeper-3.4.12

前置启动 

  1. 启动zookeeper  在zookeeper bin目录下进入cmd
    zkServer

     

  2. 启动kafka 在kafka windows目录进入cmd
    kafka-server-start ../../config/server/properties

     

 创建zipkinServer服务

1. 引入依赖

        
		    io.zipkin.java
		    zipkin-server
		
		
		    io.zipkin.java
		    zipkin-autoconfigure-ui
		    runtime
		
		
		    io.zipkin.java
		    zipkin-autoconfigure-collector-kafka
		    2.6.1
		

2. 配置文件

server:
  port: 9411
spring:
  sleuth:
    enabled: false
    sampler:
      percentage: 1.0
zipkin:
  storage:
    type: mem   #可以使用mysql es 等数据库
  collector:
    kafka:
      zookeeper: localhost:2181
      bootstrap-servers: localhost:9092

3.启动服务配置

@SpringBootApplication
//@EnableZipkinStreamServer//配置可以作为zipkinserver、
@EnableZipkinServer			//此配置为E版本配置,既可以接受https传输,也可以是消息中间件传输
public class ZipkinServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ZipkinServerApplication.class,args);
    }
}

创建zipkinclient-01、zipkinclient-02服务。zipkinclient-02与创建zipkinclient-01服务配置一致,修改端口即可

1. 引入依赖

 
        
		    org.springframework.cloud
		    spring-cloud-starter-zipkin
		
		
		    org.springframework.kafka
		    spring-kafka
		

2.配置文件

server:
  port: 8081
spring:
#  zipkin:
#      base-url: http://127.0.0.1:9411  #默认http通信的配置方式
  zipkin:
    sender:
      type: kafka  # 支持三种 方式  RABBIT, KAFKA, WEB
    service:
      name: ZipkinClient_8081_App #可以和 application.name 同名 但是必须设置
  sleuth:
    sampler:
      percentage: 1.0
  kafka:
    bootstrap-servers: localhost:9092

3.启动服务配置

@SpringBootApplication
@RestController
public class ZipkinClient_8081_App {

    public static void main(String[] args) {
        SpringApplication.run(ZipkinClient_8081_App.class,args);
    }
    
    
    @RequestMapping("/hi")
    @ResponseBody
    public String getMsg() {
    	return "123 this is client 8081";
    }

演示

1. 启动zipkinServer,访问localhost:9411

Spring Cloud 微服务链路追踪使用zipklin、kafka、es数据库_第1张图片

 2.依次启动zipkincilent-01zipkinclient-02, 访问localhost:8081/hilocalhost:8082/router

3. 刷新9411地址界面

Spring Cloud 微服务链路追踪使用zipklin、kafka、es数据库_第2张图片 

即可看到追踪信息,点击列表span可到到详细调用信息 

源码地址 :

zipkin示例源码

zipklin源码分析可参考:

墨竹大神 http://blog.mozhu.org/2017/11/16/zipkin/zipkin-8.html  

D版本搭建 https://blog.csdn.net/u012394095/article/details/82493628

你可能感兴趣的:(springcloud,springboot)