javascript
跟踪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结合使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java超出gc开销_通过这5个简单的技
- 下一篇: ddos攻击防范方式(ddos攻击防范措