成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Spring Cloud構(gòu)建微服務架構(gòu):分布式服務跟蹤(抽樣收集)

云計算 分布式
通過Trace ID和Span ID已經(jīng)實現(xiàn)了對分布式系統(tǒng)中的請求跟蹤,而這些記錄的跟蹤信息最終會被分析系統(tǒng)收集起來,并用來實現(xiàn)對分布式系統(tǒng)的監(jiān)控和分析功能,比如:預警延遲過長的請求鏈路、查詢請求鏈路的調(diào)用明細等。

通過Trace ID和Span ID已經(jīng)實現(xiàn)了對分布式系統(tǒng)中的請求跟蹤,而這些記錄的跟蹤信息最終會被分析系統(tǒng)收集起來,并用來實現(xiàn)對分布式系統(tǒng)的監(jiān)控和分析功能,比如:預警延遲過長的請求鏈路、查詢請求鏈路的調(diào)用明細等。此時,我們在對接分析系統(tǒng)時就會碰到一個問題:分析系統(tǒng)在收集跟蹤信息的時候,需要收集多少量的跟蹤信息才合適呢?

[[226406]]

理論上來說,我們收集的跟蹤信息越多就可以更好的反映出系統(tǒng)的實際運行情況,并給出更精準的預警和分析,但是在高并發(fā)的分布式系統(tǒng)運行時,大量的請求調(diào)用會產(chǎn)生海量的跟蹤日志信息,如果我們收集過多的跟蹤信息將會對我們整個分布式系統(tǒng)的性能造成一定的影響,同時保存大量的日志信息也需要不少的存儲開銷。所以,在Sleuth中采用了抽象收集的方式來為跟蹤信息打上收集標記,也就是我們之前在日志信息中看到的第四個boolean類型的值,它代表了該信息是否要被后續(xù)的跟蹤信息收集器獲取和存儲。

在Sleuth中的抽樣收集策略是通過Sampler接口實現(xiàn)的,它的定義如下:

  1. public interface Sampler { 
  2.     /** 
  3.      * @return true if the span is not null and should be exported to the tracing system 
  4.     */ 
  5.     boolean isSampled(Span span); 

通過實現(xiàn)isSampled方法,Spring Cloud Sleuth會在產(chǎn)生跟蹤信息的時候調(diào)用它來為跟蹤信息生成是否要被收集的標志。需要注意的是,即使isSampled返回了false,它僅代表該跟蹤信息不被輸出到后續(xù)對接的遠程分析系統(tǒng)(比如:Zipkin),對于請求的跟蹤活動依然會進行,所以我們在日志中還是能看到收集標識為false的記錄。

默認情況下,Sleuth會使用PercentageBasedSampler實現(xiàn)的抽樣策略,以請求百分比的方式配置和收集跟蹤信息,我們可以通過在application.properties中配置下面的參數(shù)對其百分比值進行設(shè)置,它的默認值為0.1,代表收集10%的請求跟蹤信息。

  1. spring.sleuth.sampler.percentage=0.1 

在開發(fā)調(diào)試期間,通常會收集全部跟蹤信息輸出到遠程倉庫,我們可以將其值設(shè)置為1,或者也可以通過創(chuàng)建AlwaysSampler的Bean(它實現(xiàn)的isSampled方法始終返回true)來覆蓋默認的PercentageBasedSampler策略,比如:

  1. @Bean 
  2. public AlwaysSampler defaultSampler() { 
  3.     return new AlwaysSampler(); 

在實際使用時,通過與Span對象中存儲信息的配合,我們可以根據(jù)實際情況做出更貼近需求的抽樣策略,比如實現(xiàn)一個僅對包含指定Tag的抽樣策略:

  1. public class TagSampler implements Sampler { 
  2.  
  3.     private String tag; 
  4.  
  5.     public TagSampler(String tag) { 
  6.         this.tag = tag; 
  7.     } 
  8.  
  9.     @Override 
  10.     public boolean isSampled(Span span) { 
  11.         return span.tags().get(tag) != null
  12.     } 

由于跟蹤日志信息的數(shù)據(jù)價值往往僅在最近的一段時間內(nèi)非常有用,比如:一周。那么我們在設(shè)計抽樣策略時,主要考慮在不對系統(tǒng)造成明顯性能影響的情況下,以在日志保留時間窗內(nèi)充分利用存儲空間的原則來實現(xiàn)抽樣策略。

完整示例:

讀者可以根據(jù)喜好選擇下面的兩個倉庫中查看trace-1和trace-2兩個項目:

Github:https://github.com/dyc87112/SpringCloud-Learning/

Gitee:https://gitee.com/didispace/SpringCloud-Learning/

【本文為51CTO專欄作者“翟永超”的原創(chuàng)稿件,轉(zhuǎn)載請通過51CTO聯(lián)系作者獲取授權(quán)】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關(guān)推薦

2018-04-16 14:56:56

微服務架構(gòu)分布式服務

2018-03-13 16:42:26

分布式服務跟蹤

2018-03-02 16:11:29

Spring Clou分布式服務跟蹤

2018-04-09 13:56:13

微服務架構(gòu)分布式

2018-04-02 15:01:31

微服務架構(gòu)分布式服務

2017-07-28 16:41:53

Spring Clou微服務架構(gòu)

2018-05-23 15:58:27

Spring Clou微服務架構(gòu)

2018-07-19 14:58:14

Spring Clou微服務架構(gòu)

2021-06-09 09:00:00

微服務架構(gòu)技術(shù)

2017-06-26 09:06:10

Spring Clou微服務架構(gòu)

2017-09-04 16:15:44

服務網(wǎng)關(guān)架構(gòu)

2020-05-26 11:59:30

日志鏈路微服務架構(gòu)

2017-07-03 09:50:07

Spring Clou微服務架構(gòu)

2017-08-10 11:15:05

Spring Clou微服務架構(gòu)

2017-08-09 15:50:47

Spring Clou微服務架構(gòu)

2023-09-12 22:58:51

分布式架構(gòu)微服務

2023-08-25 16:26:49

微服務架構(gòu)

2017-12-20 15:37:39

Spring Clou微服務架構(gòu)

2018-07-09 09:27:10

Spring Clou微服務架構(gòu)

2017-01-16 14:51:26

京東分布式服務CallGraph
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 精品一二三区 | 久久久久久久综合色一本 | 91性高湖久久久久久久久_久久99 | 一区二区电影网 | 小草久久久久久久久爱六 | 国产一区二区a | 国产成人在线视频播放 | 成人影院网站ww555久久精品 | 成人在线观看免费观看 | 亚洲aⅴ一区二区 | 国产精品色 | 日韩视频在线观看 | 午夜影院操| 国产视频二区 | 久久69精品久久久久久久电影好 | 欧美啊v在线观看 | 国产精品久久久久久久久久久免费看 | 亚洲一区二区三区在线免费观看 | 亚洲欧美在线观看 | 国产乱码精品一区二区三区忘忧草 | 日本久草 | 黄色毛片一级 | av片在线免费看 | 伊人免费在线观看 | 久久不卡区 | 欧美在线视频一区二区 | 精品一区精品二区 | 国产sm主人调教女m视频 | 日韩成人免费av | 亚洲精品福利视频 | 亚洲国产精品福利 | 日日夜夜精品视频 | 久久综合狠狠综合久久综合88 | 欧美激情精品久久久久久 | 成人综合一区 | 欧美激情视频一区二区三区在线播放 | 国际精品鲁一鲁一区二区小说 | 国产色片 | 亚洲一区 中文字幕 | 一区二区三区观看视频 | 免费精品|