1. 程式人生 > >Spring Cloud 中整合Zipkin進行服務跟蹤

Spring Cloud 中整合Zipkin進行服務跟蹤

在這篇文章裡介紹如何將Zipkin整合到我們的雲服務裡。Zipkin是一個開源專案,它提供了在分散式環境下發送、接收、儲存和視覺化跟蹤的機制。這使我們能夠對服務之間的活動進行關聯,並更清楚地瞭解我們服務中發生的情況。

1、Zipkin服務

Zipkin服務將儲存我們服務的所有操作步驟,每一步操作都會發送到該伺服器用來進行跟蹤識別。

1、1建立

新建一個Spring Boot工程,在POM中新增一些依賴

<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>

1、2啟用

在主應用類裡增加@EnableZipkinServer註解,此註解標識這個服務監聽所有操作和行為以供查詢。

@SpringBootApplication
@EnableEurekaClient
@EnableZipkinServer
public class ZipkinApplication {
    public static void main(String[] args) {
        SpringApplication.run(ZipkinApplication.class, args);
    }
}

1、3配置

在工程的src/main/resources目錄下新建一個bootstrap.properties檔案,新增一些配置項。

spring.cloud.config
.name=zipkin spring.cloud.config.discovery.service-id=config spring.cloud.config.discovery.enabled=true spring.cloud.config.username=configUser spring.cloud.config.password=configPassword eureka.client.serviceUrl.defaultZone=http://discUser:[email protected]:8082/eureka/

在Git倉庫裡新增zipkin.properties檔案,定義服務名稱和埠。

spring.application.name=zipkin
server.port=8088

eureka.client.region = default
eureka.client.registryFetchIntervalSeconds = 5

logging.level.org.springframework.web=debug

1、4執行

至此Zipkin服務已經建立完畢,我們可以將服務啟動起來驗證一下。首先需要啟動config、discovery服務,然後再啟動zipkin服務。在瀏覽器裡輸入http://localhost:8088,能看到Zipkin的首頁。
這裡寫圖片描述

2、服務配置

將我們的服務配置為Zipkin Client將操作資訊傳送到Zipkin Server中。這裡我們要修改book和gatew服務。

2、1POM引用

在pom.xml檔案裡新增spring-cloud-starter-zipkin。

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

2、2book服務配置

修改配置庫裡的book-service.properties檔案

spring.zipkin.locator.discovery.enabled=true
spring.zipkin.baseUrl=http://localhost:8088/
spring.sleuth.sampler.percentage=1.0
spring.sleuth.web.skipPattern=(^cleanup.*)

2、3gateway服務配置

spring.zipkin.locator.discovery.enabled=true
spring.zipkin.baseUrl=http://localhost:8088/
spring.sleuth.sampler.percentage=1.0
spring.sleuth.web.skipPattern=(^cleanup.*|.+favicon.*)

3、執行

點選進去還能看到詳細資料。
這裡寫圖片描述

這裡寫圖片描述

5、總結

我們已經看到了將Zipkin整合到雲應用程式中是多麼容易。隨著我們的應用越來越複雜,Zipkin可以為我們提供關於一個請求所花費時間的詳細資訊。這可以幫助我們確定程式在哪裡減速,並指出我們的應用需要改進的地方。

相關推薦

Spring Cloud 整合Zipkin進行服務跟蹤

在這篇文章裡介紹如何將Zipkin整合到我們的雲服務裡。Zipkin是一個開源專案,它提供了在分散式環境下發送、接收、儲存和視覺化跟蹤的機制。這使我們能夠對服務之間的活動進行關聯,並更清楚地瞭解我們服務中發生的情況。 1、Zipkin服務 Zipki

spring cloud 入門系列八:使用spring cloud sleuth整合zipkin進行服務鏈路追蹤

好久沒有寫部落格了,主要是最近有些忙,今天忙裡偷閒來一篇。 =======我是華麗的分割線========== 微服務架構是一種分散式架構,微服務系統按照業務劃分服務單元,一個微服務往往會有很多個服務單元,一個請求往往會有很多個單元參與,一旦請求出現異常,想要去定位問題點真心不容易,因此需要有個東西去跟蹤

Spring Cloud Sleuth和zipkin服務跟蹤

Spring Cloud Sleuth是為Spring Cloud實現了分散式追蹤解決方案。 Spring Cloud Sleuth借用了Dapper的術語:     跨度(Span):基本的工作單位。例如,傳送一個RPC是一個新的跨度,就像向RPC傳送響應

spring cloudspring cloud Sleuth 和Zipkin 進行分散式鏈路跟蹤

spring cloud 分散式微服務架構下,所有請求都去找閘道器,對外返回也是統一的結果,或者成功,或者失敗。 但是如果失敗,那分散式系統之間的服務呼叫可能非常複雜,那麼要定位到發生錯誤的具體位置,就是一個比較麻煩的問題。 所以定位故障點,就引入了spring cloud Sleuth【Sleuth是獵

springcloud(十二):使用Spring Cloud Sleuth和Zipkin進行分散式鏈路跟蹤

Spring Cloud Sleuth 一般的,一個分散式服務跟蹤系統,主要有三部分:資料收集、資料儲存和資料展示。根據系統大小不同,每一部分的結構又有一定變化。譬如,對於大規模分散式系統,資料儲存可分為實時資料和全量資料兩部分,實時資料用於故障排查(troubleshooting),全量資料用於系統優化;資

Spring Cloud:使用Spring Cloud Sleuth和Zipkin進行分散式鏈路跟蹤(12)

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

springcloud+springboot(十二):使用Spring Cloud Sleuth和Zipkin進行分散式鏈路跟蹤

Spring Cloud Sleuth 一般的,一個分散式服務跟蹤系統,主要有三部分:資料收集、資料儲存和資料展示。根據系統大小不同,每一部分的結構又有一定變化。譬如,對於大規模分散式系統,資料儲存可分為實時資料和全量資料兩部分,實時資料用於故障排查(troubleshooting),全量資料用於系統優化

跟我學SpringCloud | 第十一篇:使用Spring Cloud Sleuth和Zipkin進行分散式鏈路跟蹤

SpringCloud系列教程 | 第十一篇:使用Spring Cloud Sleuth和Zipkin進行分散式鏈路跟蹤 Springboot: 2.1.6.RELEASE SpringCloud: Greenwich.SR1 如無特殊說明,本系列教程全採用以上版本 在分散式服務架構中,需要對分散

Spring Cloud 使用zookeeper作為服務註冊中心與配置中心

前段時間,瞭解了通過spring-cloud-config-server與spring-cloud-eureka-server作為配置中心與註冊中心,同時瞭解到基於zookeeper或consul可以完成同樣的事情,所以必須瞭解一下,這樣有利於實際工作的技術對比

Spring Cloud使用Consul作為服務註冊中心時如何獲得local service id?

微服務是目前非常流行和實用的軟體架構設計。Spring Cloud是java開發領域最受歡迎也是常用的微服務框架。Spring Cloud Finchley版本已經發布,與此同時Eureka 2.0的開源開發工作也停止了。因此很多專案開始轉向使用Consul作為

Spring Cloud第九篇 | 分散式服務跟蹤Sleuth

​ ​本文是Spring Cloud專欄的第九篇文章,瞭解前八篇文章內容有助於更好的理解本文: Spring Cloud第一篇 | Spring Cloud前言及其常用元件介紹概覽 Spring Cloud第二篇 | 使用並認識Eureka註冊中心 Spring Cloud第三篇 | 搭建高可用E

服務學習筆記--使用Spring Cloud Sleuth配合Zipkin實現微服務跟蹤

在微服務架構中可以使用Zipkin來追蹤服務呼叫鏈路,可以知道各個服務的呼叫依賴關係。在Spring Cloud中,也提供了Spring Cloud Sleuth來方便整合Zipkin實現。 本文使用一個Zipkin Server,使用者微服務,電影微服務來實現

Spring cloud鏈路跟蹤(Sleuth+Zipkin

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

整合spring cloud企業分布式微服務雲架構

pri 研發 記錄 包括 space https 朋友 通用 業界 今天正式給大家介紹了Spring Cloud - HongHu企業分布式微服務雲架構,我這邊結合了當前大部分企業的通用需求,包括技術的選型比較嚴格、苛刻,不僅要用業界最流行的技術,還要和國際接軌,在未來的5

服務實施Spring Cloud踩過的坑(轉)

div href 發現 .wang blog log ring clas bds http://tietang.wang/2016/09/08/%E5%BE%AE%E6%9C%8D%E5%8A%A1/%E5%BE%AE%E6%9C%8D%E5%8A%A1%E5%AE%9E%

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

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

spring cloud服務之間的調用以及eureka的自我保護機制

技術 頁面 dba mapping arch 之間 tga build ng- 上篇講了spring cloud註冊中心及客戶端的註冊,所以這篇主要講一下服務和服務之間是怎樣調用的 不會搭建的小夥伴請參考我上一篇博客:idea快速搭建spring cloud-註冊中心與註冊

服務Spring Cloud—Feign簡介和為服務消費者整合

Feign簡介 Feign是Netflix開發的宣告式、模組化的HTTP客戶端,其靈感來自Retrofit、JAXRS-2.0以及WebSocket。Feign可幫組我們更加便捷、優雅的呼叫HTTP API。 在Spring Cloud中,使用Feign非常簡單——建立一個介面,並在

Spring Cloud服務間通訊(RestTemplate和Feign)

大家如果覺得我寫的好,可以關注這個專案,之後我的學習過程中都會把學習筆記放入這個專案中。 https://github.com/IndustriousSnail/learning-notes Spring Cloud中的服務間通訊(RestTemplate和Feign) 目錄

Java架構-(十五) 整合spring cloud雲架構 - commonservice-sso服務搭建(一)

前面幾篇我們已經介紹了Spring Cloud和oauth2的知識點,今天我們要利用Spring Cloud和oauth2進行commonservice-sso服務搭建,本節我們只是搭建commonservice-sso的基礎平臺,閒話少說,直接將步驟記錄下來: 建立mave