久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Spring Cloud中Sleuth如何整合Zipkin

176次閱讀
沒有評論

共計 2878 個字符,預計需要花費 8 分鐘才能閱讀完成。

這篇文章將為大家詳細講解有關 Spring Cloud 中 Sleuth 如何整合 Zipkin,丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

Sleuth 整合 ZipkinZipkin 簡介

 Zipkin 是一個分布式的跟蹤系統,主要用于收集、管理微服務所產生的數據。Zipkin 的設計基于 Google Dapper。在實際應用時,我們需要讓各個微服務,向 Zipkin 服務器報告過程數據。對于 Spring Cloud 來說,已經提供了幾個模塊來實現數據報告功能,我們僅需要加入依賴,以及做簡單配置,即可實現向 Zipkin“寫入”數據。

 Zipkin 在得到這些數據后,提供了數據查詢、分析的功能,這些圖形化的功能,可以讓我們對微服務的調用過程、處理時間、依賴關系等數據一目了然。

構建 Zipkin 服務器項目

  啟動 Zipkin 服務器,可以選擇使用 jar 包的方式,也可以往 Maven 項目中嵌入 Zipkin 服務器。

  使用 jar 包啟動,需要先下載 Zipkin 的啟動 jar 包,讀者可以到 Zipkin 的官方網站下載,地址為:http://zipkin.io/,也可以直接到本書的 soft 目錄中下載 zipkin-server-1.31.1-exec.jar。得到 jar 包后,使用“java -jar”命令啟動 Zipkin 服務器,成功啟動后,默認占用 9411 端口。

  我們也可以在 Maven 項目中嵌入 Zipkin 服務器,為了簡單起見,直接結合 Sping Boot 來構建 Zipkin 服務器。新建 zk-server 項目(代碼目錄為 codes\10\zk-server),項目所使用的依賴請見代碼清單 10-1。

代碼清單 10-1:codes\10\zk-server\pom.xml

  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

  在 application.xml 中,將啟動端口配置為 9411,代碼清單 10- 2 為啟動類。

  代碼清單 10-2:codes\10\zk-server\src\main\java\org\crazyit\cloud\ZkServerApp.java

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

  為啟動類加上 @EnableZipkinServer 注解,運行啟動類,訪問:http://localhost:9411,可以看到 Zipkin 的主界面,如圖 10- 3 所示。

圖 10-3 Zipkin 主界面

配置微服務

  接下來,需要配置各個微服務,讓它們往 Zipkin 服務器寫入數據。本章案例主要有 3 個微服務模塊:圖書、支付、銷售。幾個模塊提供了以下服務:

圖書模塊(test-book-service):提供了圖書查詢服務,地址為“/book/{bookId}”,返回一個 Book 對象。

支付模塊(test-pay-service):提供支付服務,地址為“/pay”,沒有返回,僅做簡單的控制臺輸出。

銷售模塊(test-sale-service):提供銷售服務,地址為“/sale/{bookId}”,會調用圖書模塊和支付模塊的接口,銷售服務的實現,請見代碼清單 10-3。

  代碼清單 10-3:

 codes\10\test-sale-service\src\main\java\org\crazyit\cloud\SaleApplication.java

 @RequestMapping(method = RequestMethod.GET, value =  /sale/{bookId} )
 public String sale(@PathVariable( bookId) Integer bookId) {
 System.out.println( 銷售模塊處理銷售 
 //  查找書本
 Book book = bookService.getBook(bookId);
 //  進行支付
 payService.doPay(new BigDecimal(10));
 return  銷售成功,書名:   + book.getName() +  ,  作者: + book.getAuthor();
 }

  銷售模塊調用圖書、支付模塊接口,使用的是 Feign 框架,該框架的使用,讀者可參考本書的相關章節,在此不再贅述。

  實現了微服務后,加 3 個模塊加入以下依賴:

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

  接下來,還要為各個模塊配置 Zipkin 服務器,application.yml 的配置如下:

spring:
 zipkin:
 base-url: http://localhost:9411
 sleuth:
 sampler:
 percentage: 1.0

  在 application.yml 中,使用 spirng.zipkin.base-url 來配置 Zipkin 的服務器,使用 spring.zipkin.sleuth.sampler.percentage 來配置跨度數據的采樣百份比,默認值為 0.1,也就是會向 Zipkin 發送約 10% 的跨度數據。本例中為了查看效果,直接配置為 1,也就是全部的跨度數據都會被發送到 Zipkin。在生產環境中,建議還是按照具體的需求進行抽樣,以免增加服務器的負載。

  為了能在各個微服務的控制臺中看到 Sleuth 的輸出,還需要為 3 個微服務配置日志級別,在 application.yml 中加入以下配置:

logging:
 level:
 root: INFO
 org.springframework.cloud.sleuth: DEBUG

關于“Spring Cloud 中 Sleuth 如何整合 Zipkin”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-16發表,共計2878字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 棋牌| 萨迦县| 福安市| 岳西县| 洱源县| 阿坝| 苏尼特左旗| 桂东县| 姜堰市| 体育| 南澳县| 萝北县| 曲麻莱县| 汤阴县| 乐亭县| 新沂市| 静海县| 万年县| 射洪县| 工布江达县| 分宜县| 惠水县| 八宿县| 格尔木市| 丰宁| 吴忠市| 荔波县| 潜江市| 金乡县| 方城县| 潮安县| 芜湖市| 桃园市| 理塘县| 利辛县| 高碑店市| 大田县| 古浪县| 高青县| 唐海县| 抚远县|