Spring Cloud Zipkin是微服務的鏈路跟蹤組件,幫助詳細瞭解一次request&response的總計時,及每一個微服務的消耗時間、微服務名稱、異常信息等等過程信息。java
(一) 版本說明web
a) Spring boot 2.0.6.RELEASEspring
b) Spring cloud Finchley.SR2apache
(二) 服務端項目設置app
<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>
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
a) spring.application.name 項目名稱url
b) server.port 運行端口號
c) eureka.server.enable-self-preservation 是否啓用自我保護功能,該功能默認是啓用,但爲了快速的響應服務的上下線,通常在開發環境把自我保護功能禁用
d) client.client.service-url.defaultZone 服務註冊中心地址,這裏是交叉設置3個服務自理實例
e) client.instance.lease-renewal-interval-in-seconds 發送心跳的頻率
f) client.instance.lease-expiration-duration-in-seconds 失效間隔,這個主要是判斷客戶端還活着,通常設置爲client.instance.lease-renewal-interval-in-seconds的3倍。
g) 其它參數說明能夠參考官方說明,須要說明的是spring cloud 每次版本迭代都有配置參數的變動,最好是參考相對應的版本參數說明
(三) 客戶端項目設置
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. 主要參數說明
a) spring.application.name 項目名稱
b) spring.zipkin.base-url zipkin服務器地址
c) spring.zipkin.sleuth.sampler.percentage 採集率,取值爲 0.1~1.0,若是測試環境能夠設置爲1.0,所有采集
(四) 項目運行
1. 運行服務端程序,因爲咱們註冊到了治理中心,能夠看到以下所示
點擊連接能夠看到zipkin的看板以下,因爲尚未客戶端進來,因此是空的。
2. 客戶端項目運行,運行clientservice、callbackservice、demoserviceimpl 3個項目,前兩個是項目調用後一個項目提供的服務,方便查看跟蹤效果。
3. 查看效果
a) 在PostMan多訪問幾回clien或者callback項目,而後再觀察zipkin看板,以下所示,顯示每次request的列表
b) 點擊其中一個條,查看詳細信息,能夠查看該查詢的消耗時間、通過的服務數、服務深度 等等。
c) 點擊每次服務鏈中的某次服務,能夠查查某次服務調用的具體信息以下所示
d) 若是調用失敗,點擊對應的服務,查看失敗詳情,以輔助解決問題。
e) 查詢依賴能夠看到每次調用依賴關係圖
這樣spring cloud zipkin鏈路跟蹤就介紹完了,若是在開發中遇到問題,也能夠留言共同探討共同進步。