微服務架構之spring cloud zipkin

Spring Cloud Zipkin是微服務的鏈路跟蹤組件,幫助詳細瞭解一次request&response的總計時,及每一個微服務的消耗時間、微服務名稱、異常信息等等過程信息。java

(一) 版本說明web

a) Spring boot 2.0.6.RELEASEspring

b) Spring cloud Finchley.SR2apache

c) Java version 1.8服務器

(二) 服務端項目設置app

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. 主要參數說明ui

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. 運行服務端程序,因爲咱們註冊到了治理中心,能夠看到以下所示

clip_image002

點擊連接能夠看到zipkin的看板以下,因爲尚未客戶端進來,因此是空的。

clip_image004

2. 客戶端項目運行,運行clientservice、callbackservice、demoserviceimpl 3個項目,前兩個是項目調用後一個項目提供的服務,方便查看跟蹤效果。

clip_image005

3. 查看效果

a) 在PostMan多訪問幾回clien或者callback項目,而後再觀察zipkin看板,以下所示,顯示每次request的列表

clip_image007

b) 點擊其中一個條,查看詳細信息,能夠查看該查詢的消耗時間、通過的服務數、服務深度 等等。

clip_image009

clip_image011

c) 點擊每次服務鏈中的某次服務,能夠查查某次服務調用的具體信息以下所示

clip_image013

d) 若是調用失敗,點擊對應的服務,查看失敗詳情,以輔助解決問題。

clip_image015

e) 查詢依賴能夠看到每次調用依賴關係圖

clip_image017

  這樣spring cloud zipkin鏈路跟蹤就介紹完了,若是在開發中遇到問題,也能夠留言共同探討共同進步。

相關文章
相關標籤/搜索