javascript
跟踪反应流–将Spring Cloud Sleuth与Boot 2结合使用
Spring Cloud Sleuth在OpenZipkin Brave的基礎(chǔ)上增加了對(duì)Spring工具的支持, 從而使Spring Boot應(yīng)用程序的分布式跟蹤變得異常簡(jiǎn)單。 這是一篇關(guān)于如何使用此出色的庫(kù)添加對(duì)分布式跟蹤支持的簡(jiǎn)要說(shuō)明。
考慮兩個(gè)應(yīng)用程序–一個(gè)使用上游服務(wù)應(yīng)用程序的客戶端應(yīng)用程序,都使用Spring WebFlux ( Spring的反應(yīng)式Web堆棧):
我的目標(biāo)是確保可以跟蹤從用戶到客戶端應(yīng)用程序再到服務(wù)應(yīng)用程序的流,并清晰記錄請(qǐng)求的延遲。
Spring Cloud Sleuth啟用的最終拓?fù)淙缦?#xff1a;
來(lái)自客戶端和服務(wù)應(yīng)用程序的采樣跟蹤信息通過(guò)RabbitMQ之類的排隊(duì)機(jī)制導(dǎo)出到Zipkin。
那么,對(duì)客戶端和服務(wù)應(yīng)用程序需要進(jìn)行哪些更改–就像我說(shuō)的那樣,非常簡(jiǎn)單! 需要引入以下庫(kù)–在我的情況下是通過(guò)gradle引入的:
compile("org.springframework.cloud:spring-cloud-starter-sleuth")compile("org.springframework.cloud:spring-cloud-starter-zipkin")compile("org.springframework.amqp:spring-rabbit")未指定版本,因?yàn)槠谕ㄟ^(guò)Spring Cloud BOM引入這些版本,這要?dú)w功于Spring Gradle Dependency Management插件 :
ext {springCloudVersion = 'Finchley.RELEASE' }apply plugin: 'io.spring.dependency-management'dependencyManagement {imports {mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"} }就是這樣,應(yīng)用程序中的所有日志現(xiàn)在都應(yīng)該開(kāi)始記錄跟蹤和跨度,請(qǐng)參閱以下跨兩個(gè)不同服務(wù)的日志中的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還記錄了導(dǎo)出的信息,并可以通過(guò)以下方式直觀地顯示示例跟蹤:
該示例可在我的github存儲(chǔ)庫(kù)中找到 – https://github.com/bijukunjummen/sleuth-webflux-sample,可以使用docker-compose輕松啟動(dòng),并插入所有依賴項(xiàng)。
翻譯自: https://www.javacodegeeks.com/2018/06/reactive-flow-spring-cloud-sleuth.html
總結(jié)
以上是生活随笔為你收集整理的跟踪反应流–将Spring Cloud Sleuth与Boot 2结合使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 电脑刺客信条桌面壁纸高清壁纸(刺客信条超
- 下一篇: Spring Boot&JPA&Hibe