亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring Cloud中Sleuth如何整合Zipkin

發布時間:2021-12-24 10:33:41 來源:億速云 閱讀:183 作者:小新 欄目:云計算

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

Sleuth整合Zipkin

Zipkin簡介

        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所示。

Spring Cloud中Sleuth如何整合Zipkin

圖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”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江西省| 罗田县| 清远市| 郯城县| 五寨县| 浮山县| 大足县| 嘉定区| 扎囊县| 孟村| 杭州市| 翁源县| 体育| 朝阳区| 斗六市| 古交市| 汾阳市| 池州市| 漠河县| 林甸县| 双辽市| 甘孜| 南宁市| 平和县| 玉龙| 衡山县| 航空| 商丘市| 阿坝| 庆安县| 南木林县| 枣庄市| 印江| 牙克石市| 菏泽市| 和平区| 宝应县| 阿瓦提县| 东阳市| 衡阳县| 色达县|