一、链路追踪简介

1、Sleuth组件简介

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

2、项目结构

  • 启动顺序如下
* 注册中心
node07-eureka-7001
* 链路数据收集服务
node07-zipkin-7003
* 服务提供
node07-provider-6001
node07-provider-6002
* 网关路由
node07-zuul-7002

二、搭建链路服务

1、核心依赖

<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、配置文件

server:port: 7003
spring:application:name: node07-zipkin-7003
eureka:instance:hostname: zipkin-7003prefer-ip-address: trueclient:service-url:defaultZone: http://registry01.com:7001/eureka/

三、服务配置

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

1、核心依赖

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

2、配置文件

spring:zipkin:base-url: http://localhost:7003sleuth:sampler:# 数据 100% 上传percentage: 1.0

四、测试流程

1、注册中心

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

2、请求流程

访问接口

http://localhost:7002/v1/api-6001/get6001Info

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

  • 6001接口
@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接口
@RequestMapping(value = "/get6002Info",method = RequestMethod.GET)
public String get6002Info () {LOG.info("provider-6002");return "6002Info" ;
}

3、链路管理界面

1)、UI界面

访问接口

http://localhost:7003/zipkin/

2)、依赖分析

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

五、源代码地址

GitHub地址:知了一笑
https://github.com/cicadasmile/spring-cloud-base
GitEE地址:知了一笑
https://gitee.com/cicadasmile/spring-cloud-base

SpringCloud微服务(07):Zipkin组件,实现请求链路追踪相关推荐

  1. SpringCloud微服务:Eureka组件之服务注册与发现

    一.Eureka基本架构 1.Eureka角色结构图 角色职责如下: 1).Register:服务注册中心,它是一个Eureka Server ,提供服务注册和发现功能. 2).Provider:服务 ...

  2. SpringCloud微服务架构分布式组件如何共享session对象

    参考文章: https://www.cnblogs.com/fengli9998/p/7881331.html https://blog.csdn.net/dsen726/article/detail ...

  3. 微服务架构 | 如何利用好日志链路追踪做性能分析?

    导读:做性能分析听到最多的歪理就是,服务做水平.垂直扩容.分表分库.读写分离.XX中间件.资源静态化等等但是归根到底这些方案都是为了尽可能减少对数据库的访问以及堆栈的释放,提高数据库IO的读写速度和程 ...

  4. hystrix 页面_《SpringCloud微服务之Hystrix组件》

    Hystrix 断路器:避免了服务雪崩的问题. 在分布式系统中,服务与服务之间的相互依赖调用错综复杂 可能出现某个服务因为一些异常或者调用超时 从而长时间线程阻塞,导致整个系统出现雪崩问题. Hyst ...

  5. 微服务get请求条用_SpringCloud微服务(07):Zipkin组件,实现请求链路追踪

    一.链路追踪简介 1.Sleuth组件简介 Sleuth是SpringCloud微服务系统中的一个组件,实现了链路追踪解决方案.可以定位一个请求到底请求了哪些具体的服务.在复杂的微服务系统中,如果请求 ...

  6. SpringCloud微服务:基于Nacos组件,整合Dubbo框架

    源码地址:GitHub·点这里 || GitEE·点这里 一.基础组件简介 1.Dubbo框架 Dubbo服务化治理的核心框架,之前几年在国内被广泛使用,后续由于微服务的架构的崛起,更多的公司转向微服 ...

  7. SpringCloud微服务:Sentinel哨兵组件,管理服务限流和降级

    源码地址:GitHub·点这里||GitEE·点这里 一.基本简介 1.概念描述 Sentinel 以流量为切入点,从流量控制.熔断降级.系统负载保护等多个维度保护服务的稳定性.包括核心的独立类库,监 ...

  8. SpringCloud微服务:阿里开源组件Nacos,服务和配置管理

    源码地址:GitHub·点这里||GitEE·点这里 一.阿里微服务简介 1.基础描述 Alibaba-Cloud致力于提供微服务开发的一站式解决方案.此项目包含开发分布式应用微服务的必需组件,方便开 ...

  9. springcloud微服务系列之服务注册与发现组件Eureka

    一.Eurake的简介 二.使用Eureka进行服务的注册消费 1.创建一个服务注册中心 2.创建服务的提供者 3.创建服务的消费者 总结 一.Eurake的简介 今天我们来介绍下springclou ...

最新文章

  1. flutter报错Could not connect to lockdownd, error code -
  2. Java 线程的 wait 和 notify 的神坑
  3. 【深度学习】同款商品识别的克星--ArcFace!
  4. try { } catch{ } finally{ } 执行顺序总结
  5. 瑞幸高层调整:郭谨一担任CEO和董事长 陆正耀出局
  6. 防护疫情防御插画|后疫情时代宣传不可小觑
  7. 【BUG提交】freemarker 使用Struts2标签问题
  8. java stack 实现_Swift Stack实现
  9. vc6 往mdb写入信息_HBase运维 | 一张表写入异常引起的HBase Replication 队列堆积
  10. 使用Idea搭建Spring Boot环境
  11. [Elasticsearch2.x] 多字段搜索 (二) - 最佳字段查询及其调优 译
  12. 【优化预测】基于matlab差分优化灰狼算法优化支持向量机SVM预测【含Matlab源码 1576期】.zip
  13. 光纤组网基础知识 (2) - 光纤跳线、尾纤、连接器、法兰盘、耦合器
  14. 不完全遍历Csrss进程中的句柄表
  15. leach算法的实现过程_LEACH-REC算法的研究及实现
  16. js实现跟浏览器 ctrl+f 一样的效果
  17. 上海宝付知识普及:个人信用到底多重要?
  18. 家庭版茄汁味锅包肉的做法
  19. 领扣LintCode算法问题答案-1485. 圣杯咒语
  20. 2018.4.3晚_京东实习_后端开发面试记录

热门文章

  1. Linux系统编程38:多线程之什么是线程同步以及条件变量函数
  2. 使用valgrind检查内存问题
  3. ACM第一次集训 - 动态规划问题
  4. golang Println、Printf、Sprintf的区别
  5. 获取windows所有端口
  6. JAVA Web基础6-EL表达式与JSTL标签库
  7. scanf()的使用
  8. 18 Loader 总结
  9. Asp: 解决脚本输出网页出现乱码情况
  10. CentOS 5 上安装git