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. 引入依赖

        <dependency>
		    <groupId>io.zipkin.java</groupId>
		    <artifactId>zipkin-server</artifactId>
		</dependency>
		<dependency>
		    <groupId>io.zipkin.java</groupId>
		    <artifactId>zipkin-autoconfigure-ui</artifactId>
		    <scope>runtime</scope>
		</dependency>
		<dependency>
		    <groupId>io.zipkin.java</groupId>
		    <artifactId>zipkin-autoconfigure-collector-kafka</artifactId>
		    <version>2.6.1</version>
		</dependency>

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. 引入依赖

 <!-- E及之后版本 -->
        <dependency>
		    <groupId>org.springframework.cloud</groupId>
		    <artifactId>spring-cloud-starter-zipkin</artifactId>
		</dependency>
		<dependency>
		    <groupId>org.springframework.kafka</groupId>
		    <artifactId>spring-kafka</artifactId>
		</dependency>

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

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

3. 刷新9411地址界面

 

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

源码地址 :

zipkin示例源码

zipklin源码分析可参考:

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值