欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 前端技术 > javascript >内容正文

javascript

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

发布时间:2023/12/3 javascript 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 跟踪React流–将Spring Cloud Sleuth与Boot 2结合使用 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

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结合使用的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。