隨著系統(tǒng)規(guī)模越來(lái)越大,微服務(wù)之間調(diào)用關(guān)系變得錯(cuò)綜復(fù)雜,一條調(diào)用鏈路中可能調(diào)用多個(gè)微服務(wù),任何一個(gè)微服務(wù)不可用都可能造整個(gè)調(diào)用過(guò)程失敗
spring cloud sleuth 可以跟蹤調(diào)用鏈路,分析鏈路中每個(gè)節(jié)點(diǎn)的執(zhí)行情況
01.微服務(wù)中添加 spring cloud sleuth 依賴
修改以下微服務(wù)的 pom.xml,添加 sleuth 依賴
sp02-item-service
sp03-user-service
sp04-order-service
sp11-zuul
編輯起步依賴,分別 sleuth 依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
02.在控制臺(tái)查看鏈路跟蹤日志
通過(guò) zuul 網(wǎng)關(guān),訪問(wèn) order-service
http://localhost:3001/order-service/112233
四個(gè)微服務(wù)的控制臺(tái)日志中,可以看到以下信息:
[服務(wù)id,請(qǐng)求id,span id,是否發(fā)送到zipkin]
請(qǐng)求id:請(qǐng)求到達(dá)第一個(gè)微服務(wù)時(shí)生成一個(gè)請(qǐng)求id,該id在調(diào)用鏈路中會(huì)一直向后面的微服務(wù)傳遞
span id:鏈路中每一步微服務(wù)調(diào)用,都生成一個(gè)新的id
[zuul,6c24c0a7a8e7281a,6c24c0a7a8e7281a,false]
[order-service,6c24c0a7a8e7281a,993f53408ab7b6e3,false]
[item-service,6c24c0a7a8e7281a,ce0c820204dbaae1,false]
[user-service,6c24c0a7a8e7281a,fdd1e177f72d667b,false]
03.sleuth + zipkin 鏈路分析
zipkin 可以收集鏈路跟蹤數(shù)據(jù),提供可視化的鏈路
鏈路數(shù)據(jù)抽樣比例
默認(rèn)10%的鏈路數(shù)據(jù)會(huì)被發(fā)送到zipkin服務(wù)??梢耘渲眯薷某闃颖壤?/p>
spring:
sleuth:
sampler:
probability: 0.1
zipkin 服務(wù)
下載 zipkin 服務(wù)器,https://github.com/openzipkin/zipkin
啟動(dòng)zipkin時(shí),連接到rabbitmq
java -jar zipkin-server-2.12.9-exec.jar --zipkin.collector.rabbitmq.uri=amqp://admin:admin@192.168.64.140:5672
http://localhost:9411/zipkin
微服務(wù)添加 zipkin 起步依賴
修改以下微服務(wù)
sp02-item-service
sp03-user-service
sp04-order-service
sp11-zuul
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
如果沒(méi)有配置過(guò) spring cloud bus,還需要添加 rabbitmq 依賴和連接信息
pom.xml 添加 spring cloud bus 依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-bus</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-binder-rabbit</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit-test</artifactId>
<scope>test</scope>
</dependency>
配置文件中添加 rabbitmq 連接信息
在以下配置文件中修改:
config中的4個(gè)配置文件
sp12-config項(xiàng)目的application.yml
注意:
連接信息請(qǐng)修改成你的連接信息
config項(xiàng)目需要提交
spring:
……
rabbitmq:
host: 192.168.64.140
port: 5672
username: admin
password: admin
啟動(dòng)并訪問(wèn)服務(wù),訪問(wèn) zipkin 查看鏈路分析
http://localhost:3001/order-service/112233
刷新訪問(wèn)多次,鏈路跟蹤數(shù)據(jù)中,默認(rèn)只有 10% 會(huì)被收集到zipkin文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-515622.html
訪問(wèn) zipkin
http://localhost:9411/zipkin文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-515622.html
到了這里,關(guān)于微服務(wù) springcloud 11 sleuth 鏈路跟蹤,sleuth + zipkin 鏈路分析的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!