1. 程式人生 > >Spring cloud中鏈路跟蹤(Sleuth+Zipkin)

Spring cloud中鏈路跟蹤(Sleuth+Zipkin)

Spring Cloud Sleuth為Spring Cloud提供了分散式跟蹤的解決方案

Zipkin是分散式跟蹤系統,主要功能是收集系統的時序資料,從而追蹤微服務框架的系統延時等問題。

## 跟蹤方式

一種採用原生的sleuth,是http方式。zipkin是其中一種實現方式

一種採用非同步的方式,結合kafaka/rabbitmq等第三方中介軟體實現,提高效率

## 資料儲存方式

mysql

Elasticsearch

cassandra

in-momery

(每種方式依賴的jar不同)

==》使用http的方式接受訊息(zipkin)---Sleuth-server

1、新增依賴

<dependency>

<groupId>io.zipkin.java</groupId>

<artifactId>zipkin-server</artifactId>

</dependency>

<dependency>

<groupId>io.zipkin.java</groupId>

<artifactId>zipkin-autoconfigure-ui</artifactId>

<scope>runtime</scope>

</dependency>

2、啟動類添加註解 @EnableZipkinServer

3、配置檔案.yml 新增 server.port=9411

-------------------------------------------------------------------------------

微服務整合Zipkin

1、新增依賴

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-sleuth-zipkin</artifactId>

</dependency>

2、配置檔案

==》使用中介軟體接受訊息(rabbitMQ)------Sleuth-server

1、新增依賴

<!-- 採用中介軟體的形式跟蹤訊息 -->

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-sleuth-zipkin-stream</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-stream-rabbit</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-sleuth</artifactId>

</dependency>

<dependency>

<groupId>io.zipkin.java</groupId>

<artifactId>zipkin-autoconfigure-ui</artifactId>

<scope>runtime</scope>

</dependency>

2、啟動類中添加註解 @EnableZipkinStreamServer

3、修改配置檔案

server.port=9411

#rabbit config

spring.rabbitmq.host=localhost

spring.rabbitmq.port=5672

spring.rabbitmq.username=guest

spring.rabbitmq.password=guest

-------------------------------------------------------------------------------

微服務整合中介軟體(XXXX-service)

1、新增依賴

<!-- 採用中介軟體來接受收集跟蹤訊息 -->

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-sleuth</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-sleuth-stream</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-stream-rabbit</artifactId>

</dependency>

2、配置檔案

spring.rabbitmq.host=localhost

spring.rabbitmq.port=5672

spring.rabbitmq.username=guest

spring.rabbitmq.password=guest

=======================================================================

==》儲存跟蹤資料(mysql、Elasticsearch、cassandra、in-momery等)---Sleuth-server

1、新增依賴

<!--儲存到資料庫需要如下依賴 不同的後端儲存對應相應的依賴 -->

<!-- MySql -->

<dependency>

<groupId>io.zipkin.java</groupId>

<artifactId>zipkin-autoconfigure-storage-mysql</artifactId>

</dependency>

<!-- Elasticsearch -->

<dependency>

<groupId>io.zipkin.java</groupId> -

<artifactId>zipkin-autoconfigure-storage-elasticsearch-http</artifactId>

<version>1.24.0</version>

<optional>true</optional>

</dependency>

<!-- cassandra-->

<dependency>

<groupId>io.zipkin.java</groupId>

<artifactId>zipkin-storage-cassandra</artifactId>

<version>${zipkin.version}</version>

<scope>test</scope>

</dependency>

2、配置檔案中新增:

#elasticsearch config

#將跟蹤資料儲存到Elasticsearch中

zipkin.storage.type=elasticsearch

zipkin.storage.elasticsearch.hosts=127.0.0.1:9200

zipkin.storage.elasticsearch.cluster=elasticsearch

zipkin.storage.elasticsearch.index=zipkin

zipkin.storage.elasticsearch.index-shards=5

zipkin.storage.elasticsearch.index-replicas=1

#mysql config

#將跟蹤資料儲存到Mysql中

zipkin.storage.type=mysql

spring.datasource.schema=classpath:/mysql.sql

spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/test

spring.datasource.username=root

spring.datasource.password=123456

spring.datasource.initialize=true

spring.datasource.continueOnError=true

spring.sleuth.enabled=false

相關推薦

Spring cloud跟蹤Sleuth+Zipkin

Spring Cloud Sleuth為Spring Cloud提供了分散式跟蹤的解決方案 Zipkin是分散式跟蹤系統,主要功能是收集系統的時序資料,從而追蹤微服務框架的系統延時等問題。 ## 跟蹤方式 一種採用原生的sleuth,是http方式。zipkin是其

Spring Cloud 分散式跟蹤 Sleuth + Zipkin + Elasticsearch

隨著業務越來越複雜,系統也隨之進行各種拆分,特別是隨著微服務架構的興起,看似一個簡單的應用,後臺可能很多服務在支撐;一個請求可能需要多個服務的呼叫;當請求遲緩或不可用時,無法得知是哪個微服務引起的,這時就需要解決如何快速定位服務故障點,Zipkin 分散式跟蹤系統就能很好的解決這樣的問題。 如果想學習Java

Spring Cloud 分散式跟蹤 Sleuth + Zipkin + Elasticsear

隨著業務越來越複雜,系統也隨之進行各種拆分,特別是隨著微服務架構的興起,看似一個簡單的應用,後臺可能很多服務在支撐;一個請求可能需要多個服務的呼叫;當請求遲緩或不可用時,無法得知是哪個微服務引起的,這時就需要解決如何快速定位服務故障點,Zipkin 分散式跟蹤系統就能很好的解決這樣的問題。 那麼到底怎麼使用

Spring Cloud:使用Spring Cloud SleuthZipkin進行分散式跟蹤12

隨著業務發展,系統拆分導致系統呼叫鏈路愈發複雜一個前端請求可能最終需要呼叫很多次後端服務才能完成,當整個請求變慢或不可用時,我們是無法得知該請求是由某個或某些後端服務引起的,這時就需要解決如何快讀定位服務故障點,以對症下藥。於是就有了分散式系統呼叫跟蹤的誕生。 現今業界分散式服務跟蹤的理論基礎主

Spring Boot + Spring Cloud 實現許可權管理系統 後端篇二十二追蹤SleuthZipkin

線上演示 演示地址:http://139.196.87.48:9002/kitty 使用者名稱:admin 密碼:admin 技術背景 在微服務架構中,隨著業務發展,系統拆分導致系統呼叫鏈路愈發複雜,一個看似簡單的前端請求可能最終需要呼叫很多次後端服務才能完成,那麼當整個請求出現問題時,我們很難得知到

Spring Boot + Spring Cloud 構建微服務系統:分散式追蹤SleuthZipkin

技術背景 在微服務架構中,隨著業務發展,系統拆分導致系統呼叫鏈路愈發複雜,一個看似簡單的前端請求可能最終需要呼叫很多次後端服務才能完成,那麼當整個請求出現問題時,我們很難得知到底是哪個服務出了問題導致的,這時就需要解決一個問題,如何快速定位服務故障點,於是,分散式系統呼叫鏈追蹤技術就此誕生了。 ZipKin

spring cloud 分布式跟蹤(集成zipkin)

ava 分享圖片 復雜 客戶 我們 集成 客戶端 erp -a 篇寫了分布式鏈路追蹤 spring cloud 分布式鏈路追蹤 這樣的鏈路追蹤雖然可以解決問題 但日誌太過於分散 如果微服務過多 就會變的相當復雜 zipkin就可以幫我們把鏈路調用的過程全部收集起來 它

spring cloud 服務追蹤

簡介 Spring cloud Sleuth主要功能就是在分散式系統中提供追蹤解決方案,並且相容支援zipkin,你只需要在pom檔案中引入相應的依賴即可。 1、span 基本工作單元,span在不斷的啟動和停止,同時記錄了時間資訊,當你建立一相span,你必須在未來的某個時刻停止它。

spring cloud 分散式追蹤

  微服務之間進行呼叫 那麼如果我負責一個模組 別人負責另一個模組 我呼叫了他的方法 測試那邊卻報了錯 那是我的問題還是他的問題   這個時候大家應該就能想到日誌可以解決這個問題   如何使用日誌呢 先在配置檔案中加   logging:   path:D:\logs

zipkin+elasticsearch全跟蹤springcloud

公司最近搭建springcloud架構,我在做sleuth+zipkin做鏈路跟蹤時發現zipkin將trace存在記憶體中,而一旦訪問量上去,zipkin就容易被壓崩,網上搜索資料發現基本都是kafka+zk+elasticsearch做解決方案的 這種方案在各種springcloud書上和各

【SpringCloud Greenwich版本】第九章追蹤Sleuth

一、SpringCloud版本 本文介紹的Springboot版本為2.1.1.RELEASE,SpringCloud版本為Greenwich.RC1,JDK版本為1.8,整合環境為IntelliJ IDEA 二、Spring Cloud Sleuth介紹 Spring Clou

[筆記.zipkin]對.net跟蹤類庫zipkin4net的備忘

1、zipkin4net 的大致邏輯:     本質上就是建立span物件並提交     根據設定的取樣率SamplingRate確定是否建立和提交     資料提交通過 IRecordDispatcher -> IReporter -> IZipkinSe

分布式追蹤SleuthZipkin

ice mysql 順序 sum mes ram 系統 註冊 分布式 技術背景 在微服務架構中,隨著業務發展,系統拆分導致系統調用鏈路愈發復雜,一個看似簡單的前端請求可能最終需要調用很多次後端服務才能完成,那麽當整個請求出現問題時,我們很難得知到底是哪個服務出了問題導致的

[計算機網絡基礎]數據第一部分

一段 unit spa art 余數 tro span 需要 max 一:數據鏈路層的組幀: 組幀:網絡層的IP數據報向下傳送至數據鏈路層,成為數據鏈路層的數據單元,給數據單元加上首部和尾部,就組成數據鏈路層的一個幀。如圖所示: 其中規定數據鏈路層幀的數據單元所能

Office 365的郵件跟蹤Exchange Online

郵件跟蹤 o365郵件跟蹤 在Office 365中調用郵件跟蹤是管理員用來監視電子郵件流的最基本的工具之一。由於電子郵件是通過Office 365的EOP傳遞的,因此有關這些郵件的信息將存儲在日誌中,並可用於管理目的。無論用戶是否刪除或清除郵件,管理員都可以查看發送和接收郵件的基本信息。

spring cloud 初步搭建1-1eureka配置

技術 特點 target .com 組件 console oot 配套 quick 本次版本基於spring cloud (Finchley.RELEASE) spring boot ( 2.0.4.RELEASE ) 踩坑1:spring cloud從 2.0.幾開始,需

阿裏雲產品專家解讀追蹤Tracing Analysis

ear 性能管理 cbe zipkin lock 表格 管理 精簡 orm 摘要: 概要 阿裏雲上最近推出了一款新產品 鏈路追蹤 ,專註於幫助開發者快速分析和診斷分布式應用架構下的性能瓶頸,提高微服務時代下的開發診斷效率。 分布式應用環境下的鏈路追蹤,並不是一個新話題。在早

走進Spring Cloud之八 SpringCloud Config配置中心Greenwich版本

走進Spring Cloud之八 SpringCloud Config(配置中心)(Greenwich版本) Spring Boot profile Spring Cloud Config springcloud-config-repo(遠端git配置倉庫)

阿里雲產品專家解讀追蹤Tracing Analysis

摘要: 概要 阿里雲上最近推出了一款新產品 鏈路追蹤 ,專注於幫助開發者快速分析和診斷分散式應用架構下的效能瓶頸,提高微服務時代下的開發診斷效率。 分散式應用環境下的鏈路追蹤,並不是一個新話題。在早些時間,阿里雲產品 業務實時監控服務 也有類似功能推出。 阿里雲上最近推出

走進Spring Cloud之三 eureka Producer服務提供者Greenwich版本

service-producer(eureka client) 前面我們已經成功的建立了叢集版的註冊中心,接下來我們就可以把我們的服務註冊到我們叢集註冊中心提供給消費者使用。 新建moudel(service-producer) pom.xml 修改pom.x