前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >SpringCloud微服务:Zipkin组件,实现请求链路追踪

SpringCloud微服务:Zipkin组件,实现请求链路追踪

作者头像
知了一笑
发布2019-08-22 18:40:26
发布2019-08-22 18:40:26
71200
代码可运行
举报
文章被收录于专栏:知了一笑知了一笑
运行总次数:0
代码可运行

一、链路追踪简介

1、Sleuth组件简介

Sleuth是SpringCloud微服务系统中的一个组件,实现了链路追踪解决方案。可以定位一个请求到底请求了哪些具体的服务。在复杂的微服务系统中,如果请求发生了异常,可以快速捕获问题所在的服务。

2、项目结构

  • 启动顺序如下
代码语言:javascript
代码运行次数:0
复制
* 注册中心
node07-eureka-7001
* 链路数据收集服务
node07-zipkin-7003
* 服务提供
node07-provider-6001
node07-provider-6002
* 网关路由
node07-zuul-7002

二、搭建链路服务

1、核心依赖

代码语言:javascript
代码运行次数:0
复制
<dependency>
    <groupId>io.zipkin.java</groupId>
    <artifactId>zipkin-server</artifactId>
</dependency>
<dependency>
    <groupId>io.zipkin.java</groupId>
    <artifactId>zipkin-autoconfigure-ui</artifactId>
</dependency>
  • 启动类注解:@EnableZipkinServer

2、配置文件

代码语言:javascript
代码运行次数:0
复制
server:
  port: 7003
spring:
  application:
    name: node07-zipkin-7003
eureka:
  instance:
    hostname: zipkin-7003
    prefer-ip-address: true
  client:
    service-url:
      defaultZone: http://registry01.com:7001/eureka/

三、微服务配置

这里网关,zuul-7002,服务提供,provider-6001,provider-6002的配置相同。

1、核心依赖

代码语言:javascript
代码运行次数:0
复制
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

2、配置文件

代码语言:javascript
代码运行次数:0
复制
spring:
  zipkin:
    base-url: http://localhost:7003
  sleuth:
    sampler:
      # 数据 100% 上传
      percentage: 1.0

四、测试流程

1、注册中心

一次启动上述服务之后,查看注册中心:

2、请求流程

访问接口

代码语言:javascript
代码运行次数:0
复制
http://localhost:7002/v1/api-6001/get6001Info

这个请求从网关服务进入,到达6001端口服务之后,请求6002端,最终返回结果。

  • 6001接口
代码语言:javascript
代码运行次数:0
复制
@Autowired
private RestTemplate restTemplate ;
@RequestMapping("/get6001Info")
public String get6001Info (){
    String server_name = "http://node07-provider-6002" ;
    return restTemplate.getForObject(server_name+"/get6002Info",String.class) ;
}
  • 6002接口
代码语言:javascript
代码运行次数:0
复制
@RequestMapping(value = "/get6002Info",method = RequestMethod.GET)
public String get6002Info () {
    LOG.info("provider-6002");
    return "6002Info" ;
}

3、链路管理界面

1)、UI界面

访问接口

代码语言:javascript
代码运行次数:0
复制
http://localhost:7003/zipkin/

2)、依赖分析

如图点击,【依赖分析】,和上面描述的请求过程完全一致。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 知了一笑 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、链路追踪简介
    • 1、Sleuth组件简介
    • 2、项目结构
  • 二、搭建链路服务
    • 1、核心依赖
    • 2、配置文件
  • 三、微服务配置
    • 1、核心依赖
    • 2、配置文件
  • 四、测试流程
    • 1、注册中心
    • 2、请求流程
    • 3、链路管理界面
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档