Spring Cloud Sleuth在OpenZipkin Brave的基础上增加了对Spring工具的支持, 从而使Spring Boot应用程序的分布式跟踪变得异常简单。 这是关于使用此出色的库添加对分布式跟踪的支持所需内容的简要介绍。

考虑两个应用程序–一个使用上游服务应用程序的客户端应用程序,都使用Spring WebFlux ( Spring的React式Web堆栈):

我的目标是确保可以跟踪从用户到客户端应用程序再到服务应用程序的流,并清晰记录请求的延迟。

Spring Cloud Sleuth启用的最终拓扑如下:

来自客户端和服务应用程序的采样跟踪信息通过RabbitMQ之类的排队机制导出到Zipkin。

那么,对客户端和服务应用程序需要进行哪些更改–就像我说的那样,非常简单! 需要引入以下库–在我的情况下是通过gradle引入的:

compile("org.springframework.cloud:spring-cloud-starter-sleuth")compile("org.springframework.cloud:spring-cloud-starter-zipkin")compile("org.springframework.amqp:spring-rabbit")

未指定版本,因为期望通过Spring Cloud BOM引入它们,这要归功于Spring Gradle Dependency Management插件 :

ext {springCloudVersion = 'Finchley.RELEASE'
}apply plugin: 'io.spring.dependency-management'dependencyManagement {imports {mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"}
}

就是这样,应用程序中的所有日志现在都应该开始记录跟踪和跨度,请参阅以下跨两个不同服务的日志中的traceid记录:

2018-06-22 04:06:28.579  INFO [sample-client-app,c3d507df405b8aaf,c3d507df405b8aaf,true] 9 --- [server-epoll-13] sample.load.PassThroughHandler           : handling message: Message(id=null, payload=Test, delay=1000)
2018-06-22 04:06:28.586  INFO [sample-service-app,c3d507df405b8aaf,829fde759da15e63,true] 8 --- [server-epoll-11] sample.load.MessageHandler               : Handling message: Message(id=5e7ba240-f97d-405a-9633-5540bbfe0df1, payload=Test, delay=1000)

此外,Zipkin UI还记录了导出的信息,并可以通过以下方式直观地显示示例跟踪:

此示例可在我的github存储库中找到 -https://github.com/bijukunjummen/sleuth-webflux-sample,可以使用docker-compose轻松启动,并插入所有依赖项。

翻译自: https://www.javacodegeeks.com/2018/06/reactive-flow-spring-cloud-sleuth.html

跟踪React流–将Spring Cloud Sleuth与Boot 2结合使用相关推荐

  1. 跟踪反应流–将Spring Cloud Sleuth与Boot 2结合使用

    Spring Cloud Sleuth在OpenZipkin Brave的基础上增加了对Spring工具的支持, 从而使Spring Boot应用程序的分布式跟踪变得异常简单. 这是一篇关于如何使用此 ...

  2. Spring微服务实战第9章 使用Spring Cloud Sleuth和Zipkin进行分布式跟踪

    文章目录 第9章 使用Spring Cloud Sleuth和Zipkin进行分布式跟踪 9.1 Spring Cloud Sleuth与关联ID 9.1.1 将Spring Cloud Sleuth ...

  3. java B2B2C Springcloud多租户电子商城系统-Spring Cloud Sleuth

    在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整 ...

  4. Spring Cloud Sleuth 服务跟踪 将跟踪信息存储到数据库

    参见上一篇博客:Spring Cloud Sleuth 服务跟踪 参考:zipkin使用mysql保存数据 主要在跟踪服务上配置: 在数据库创建数据库表:(可不创建,在classpath中添加对应的s ...

  5. (十二)java版b2b2c社交电商spring cloud分布式微服务:使用Spring Cloud Sleuth和Zipkin进行分布式链路跟踪...

    Spring Cloud Sleuth Spring cloud b2b2c电子商务社交平台源码请加企鹅求求:一零三八七七四六二六.一般的,一个分布式服务跟踪系统,主要有三部分:数据收集.数据存储和数 ...

  6. spring cloud学习进阶篇:Spring Cloud Sleuth + Zipkin 实现分布式跟踪解决方案

    2019独角兽企业重金招聘Python工程师标准>>> 简述 使用 spring cloud 用到最多的是各种rest服务调用,Twitter的Zipkin 是一种实现分布式跟踪解决 ...

  7. Spring Cloud Sleuth+Zipkin 构建微服务链路跟踪系统

    什么是链路跟踪系统? 在微服务中,多个服务分布在不同物理机器上,各个服务之间相互调用.如何清晰地记录服务调用过程,并在出现问题的时候能够通过查看日志和服务之间的调用关系来定位问题,这样的系统就叫做链路 ...

  8. 跟我学SpringCloud | 第十一篇:使用Spring Cloud Sleuth和Zipkin进行分布式链路跟踪

    SpringCloud系列教程 | 第十一篇:使用Spring Cloud Sleuth和Zipkin进行分布式链路跟踪 Springboot: 2.1.6.RELEASE SpringCloud: ...

  9. 五分钟学会 Spring Cloud Sleuth:分布式请求链路跟踪(小白必看,一看就会教程)

    Spring Cloud Sleuth:分布式请求链路跟踪 Spring Cloud Sleuth 简介 给服务添加请求链路跟踪 整合Zipkin获取及分析日志 使用Elasticsearch存储跟踪 ...

最新文章

  1. Google 出品的 Java 编码规范,值得借鉴!
  2. nebula加入时间约束条件,查询结果没有输出
  3. 使用代码获得table whered use list
  4. python 文字识别 之 pytesseract
  5. maven package install deploy区别
  6. XMLReader—一个可以读取XML文件的java类
  7. 软件工程第一次作业程序开发历程
  8. raft Paxos
  9. jQuery ajax教程
  10. 本地blast安装使用教程
  11. Windows远程控制时,输入账号密码无法登录,提示“用户名或密码错误”问题(已解决)
  12. 茎叶图、箱图是什么,如何用SPSS实现?(图文)
  13. springboo集成axis2实现webservice服务
  14. 诗词创作[3] 问春
  15. instr,left,mid 定位、取内容(字符串)函数
  16. Load, Modify, and Save an Image - 加载、修改和保存图像
  17. mysql association_MyBatis association的两种形式——MyBatis学习笔记之四
  18. 数据集分布评估-KDE (核密度估计)、KS检验
  19. LumaQQ.NET使用的一些方法
  20. Swift - 自动布局库SnapKit的使用详解2(约束的更新、移除、重做)

热门文章

  1. [2021-09-04 AtCoder Beginner Contest 217] 题解
  2. 【正睿2021寒假省选第二轮集训 day 1】令牌生成 (组合数+二分)
  3. P7294-[USACO21JAN]Minimum Cost Paths P【单调栈】
  4. P5110-块速递推【特征方程,分块】
  5. P3302-[SDOI2013]森林【主席树,LCA,启发式合并】
  6. jzoj3854-分组【树状数组,线段树】
  7. P3846-[TJOI2007]可爱的质数【BSGS,数论】
  8. 【结论】取石子游戏(jzoj 1211)
  9. 一文带你了解Java Agent
  10. 从 0 开始手写一个 Spring MVC 框架,向高手进阶