Spring Cloud Zipkin是微服務(wù)的鏈路跟蹤組件咱筛,幫助詳細(xì)了解一次request&response的總計時,及每個微服務(wù)的消耗時間翁脆、微服務(wù)名稱眷蚓、異常信息等等過程信息。
(一) 版本說明
a) Spring boot 2.0.6.RELEASE
b) Spring cloud Finchley.SR2
c) Java version 1.8
(二) 服務(wù)端項目設(shè)置
1. Pom文件
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
<version>2.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>io.zipkin.java</groupId>
<artifactId>zipkin-server</artifactId>
<version>2.11.12</version>
<exclusions>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.zipkin.java</groupId>
<artifactId>zipkin-autoconfigure-ui</artifactId>
<version>2.11.12</version>
</dependency>
2. application.yml配置文件
server:
port: 1601
eureka:
instance:
hostname: 192.168.1.78
prefer-ip-address: true
ip-address: 192.168.1.129
lease-renewal-interval-in-seconds: 10
lease-expiration-duration-in-seconds: 30
client:
service-url:
defaultZone: http://${eureka.instance.hostname}:1001/eureka/,http://${eureka.instance.hostname}:1002/eureka/,http://${eureka.instance.hostname}:1003/eureka/
management:
metrics:
web:
server:
auto-time-requests: false
endpoints:
web:
base-path: "/actuator"
exposure:
include: "*"
endpoint:
health:
show-details: ALWAYS
spring:
application:
name: monitorservice
3. 主要參數(shù)說明
a) spring.application.name 項目名稱
b) server.port 運行端口號
c) eureka.server.enable-self-preservation 是否啟用自我保護功能反番,該功能默認(rèn)是啟用沙热,但為了快速的響應(yīng)服務(wù)的上下線叉钥,一般在開發(fā)環(huán)境把自我保護功能禁用
d) client.client.service-url.defaultZone 服務(wù)注冊中心地址,這里是交叉設(shè)置3個服務(wù)自理實例
e) client.instance.****lease-renewal-interval-in-seconds**** 發(fā)送心跳的頻率
f) client.****instance****.****lease-expiration-duration-in-seconds**** 失效間隔篙贸,這個主要是判斷客戶端還活著投队,一般設(shè)置為client.instance.lease-renewal-interval-in-seconds的3倍。
g) 其它參數(shù)說明可以參考官方說明爵川,需要說明的是spring cloud 每次版本迭代都有配置參數(shù)的變更敷鸦,最好是參考相對應(yīng)的版本參數(shù)說明
(三) 客戶端項目設(shè)置
1. Pom文件
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
<version>2.0.2.RELEASE</version>
</dependency>
2. application.yml配置文件
spring:
application:
name: callbackservice
zipkin:
base-url: http://192.168.1.129:1601
sleuth:
sampler:
percentage: 1.0
3. 主要參數(shù)說明
a) spring.application.name 項目名稱
b) spring.zipkin.base-url zipkin服務(wù)器地址
c) spring.zipkin.sleuth.sampler.percentage 采集率,取值為 0.1~1.0寝贡,如果測試環(huán)境可以設(shè)置為1.0扒披,全部采集
(四) 項目運行
1. 運行服務(wù)端程序,由于我們注冊到了治理中心圃泡,可以看到如下所示
點擊鏈接可以看到zipkin的看板如下碟案,由于還沒有客戶端進來,所以是空的颇蜡。
2. 客戶端項目運行价说,運行clientservice、callbackservice风秤、demoserviceimpl 3個項目鳖目,前兩個是項目調(diào)用后一個項目提供的服務(wù),方便查看跟蹤效果缤弦。
3. 查看效果
a) 在PostMan多訪問幾次clien或者callback項目领迈,然后再觀察zipkin看板,如下所示甸鸟,顯示每次request的列表
b) 點擊其中一個條惦费,查看詳細(xì)信息兵迅,可以查看該查詢的消耗時間抢韭、經(jīng)過的服務(wù)數(shù)、服務(wù)深度 等等恍箭。
c) 點擊每次服務(wù)鏈中的某次服務(wù)刻恭,可以查查某次服務(wù)調(diào)用的具體信息如下所示
d) 如果調(diào)用失敗,點擊對應(yīng)的服務(wù)扯夭,查看失敗詳情鳍贾,以輔助解決問題。
e) 查詢依賴可以看到每次調(diào)用依賴關(guān)系圖
這樣spring cloud zipkin鏈路跟蹤就介紹完了交洗,如果在開發(fā)中遇到問題骑科,也可以留言共同探討共同進步。