天天看點

分布式鍊路追蹤系統

1、微服務下的鍊路追蹤講解和它的重要性

一個服務進來後,可能會調用N多個服務,導緻整個時間很慢,但是又不知道到底是哪個服務導緻的變慢,這個時候就會有架構來記錄每個服務的調用的時間,這個架構就是ZipKin(twitter的技術),可以追蹤服務裡的整個調用鍊路;

2、SpringCloud的鍊路追蹤元件Sleuth

Sleuth最主要的功能是做日志埋點,記錄調用時間的日志;

在product提供服務與order下單服務的項目都要加入依賴

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-boot-starter-sleuth</artifactId>
 </dependency>
           

調用接口劶會多出一部分日志:

2019-04-08 21:43:35.255  INFO [order-service,3c5a689300b283a5,5268ead2e429455b,false] 2284 --- [oduct-service-1] c.n.u.concurrent.ShutdownEnabledTimer    : Shutdown hook installed for: NFLoadBalancer-PingTimer-product-service
2019-04-08 21:43:35.256  INFO [order-service,3c5a689300b283a5,5268ead2e429455b,false] 2284 --- [oduct-service-1] c.netflix.loadbalancer.BaseLoadBalancer  : Client: product-service instantiated a LoadBalancer: DynamicServerListLoadBalancer:{NFLoadBalancer:name=product-service,current list of Servers=[],Load balancer stats=Zone stats: {},Server stats: []}ServerList:null
2019-04-08 21:43:35.264  INFO [order-service,3c5a689300b283a5,5268ead2e429455b,false] 2284 --- [oduct-service-1] c.n.l.DynamicServerListLoadBalancer      : Using serverListUpdater PollingServerListUpdater
2019-04-08 21:43:35.294  INFO [order-service,3c5a689300b283a5,5268ead2e429455b,false] 2284 --- [oduct-service-1] c.n.l.DynamicServerListLoadBalancer  
           

日志說明:

[order-service,3c5a689300b283a5,5268ead2e429455b,false]
           
分布式鍊路追蹤系統

一個請求裡,每個服務的Trace ID都一樣,每個服務的Span Id都不一樣

3、可視化鍊路追蹤系統ZipKin的部署

ZipKin官網

1、簡介:

分布式鍊路追蹤系統

2、使用

在docker控制台輸入如下指令後會自動下載下傳:

docker run -d -p 9411:9411 openzipkin/zipkin
           
分布式鍊路追蹤系統

檢視web頁面:

分布式鍊路追蹤系統

4、ZipKin+Sleuth鍊路追蹤實戰

1、原理介紹

分布式鍊路追蹤系統

資料預設存在記憶體,也可以手動改為存mysql裡或其他存儲裡;

2、添加依賴

<!--zipkin+sleuth,下邊的依賴包含了sleuth,是以可以将之前的sleuth的依賴注釋掉了-->
<dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
           
分布式鍊路追蹤系統

3、在orderService配置檔案裡配置zipkin服務位址

分布式鍊路追蹤系統

4、通路web頁面

分布式鍊路追蹤系統

此時調用下單接口後,在web頁面看到如下資料:

分布式鍊路追蹤系統

5、配置采樣百分比

分布式鍊路追蹤系統

1表明全部服務資訊都進行采集,開發環境可以設定為1,生産環境用預設即可;

6、可以看到每個服務的耗時時間

分布式鍊路追蹤系統

微服務核心知識分布

繼續閱讀