<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          淺嘗Spring Cloud Sleuth

          共 3266字,需瀏覽 7分鐘

           ·

          2020-12-18 15:22

          點(diǎn)擊上方藍(lán)色字體,選擇“標(biāo)星公眾號(hào)”

          優(yōu)質(zhì)文章,第一時(shí)間送達(dá)

          ? 作者?|??Ken.W

          來(lái)源 |? urlify.cn/Rveyau

          66套java從入門到精通實(shí)戰(zhàn)課程分享

          Spring Cloud Sleuth提供了分布式追蹤(distributed tracing)的一個(gè)解決方案。其基本思路是在服務(wù)調(diào)用的請(qǐng)求和響應(yīng)中加入ID,標(biāo)明上下游請(qǐng)求的關(guān)系。利用這些信息,可以方便地分析服務(wù)調(diào)用鏈路和服務(wù)間的依賴關(guān)系。

          Only Sleuth

          在Spring Tool Suite的文件菜單中,點(diǎn)擊新建Spring Starter Project。

          在請(qǐng)求處理方法內(nèi)加上一行日志代碼。

          import?org.slf4j.Logger;
          import?org.slf4j.LoggerFactory;
          import?org.springframework.boot.SpringApplication;
          import?org.springframework.boot.autoconfigure.SpringBootApplication;
          import?org.springframework.web.bind.annotation.RequestMapping;
          import?org.springframework.web.bind.annotation.RestController;

          @RestController
          @SpringBootApplication
          public?class?SpringcloudSleuthApplication?{

          ?private?static?Logger?log?=?LoggerFactory.getLogger(SpringcloudSleuthApplication.class);
          ?@RequestMapping("/")
          ?public?String?home()?{
          ??log.info("Handling?home");
          ??return?"Hello?World";
          ?}

          ?public?static?void?main(String[]?args)?{
          ??SpringApplication.run(SpringcloudSleuthApplication.class,?args);
          ?}
          }

          設(shè)定應(yīng)用程序端口及名稱。

          server.port=10001

          spring.application.name=sleuth-demo-without-zipkin

          啟動(dòng)程序并瀏覽頁(yè)面后,可以看到日志信息里多了點(diǎn)東西。

          [sleuth-demo-without-zipkin,6c00dba1679ee164,6c00dba1679ee164,false]

          這一串?dāng)?shù)據(jù)里包含四個(gè)部分

          • appname - 應(yīng)用程序名稱

          • traceId - 追蹤系統(tǒng)中的唯一標(biāo)識(shí)

          • spanId - 具體操作的唯一標(biāo)識(shí)

          • exportable - 是否日志要導(dǎo)出到Zipkin

          Sleuth + Zipkin

          Zipkin Server

          要想把追蹤數(shù)據(jù)發(fā)送到Zipkin上,首先需要建立一個(gè)Zipkin Server應(yīng)用程序,在pom.xml里加上如下依賴:


          ??
          ????org.springframework.boot
          ????spring-boot-starter
          ??


          ??
          ????org.springframework.boot
          ????spring-boot-starter-test
          ????test
          ??


          ??
          ????io.zipkin.java
          ????zipkin-server
          ????2.11.5
          ??

          ??
          ??
          ????io.zipkin.java
          ????zipkin-autoconfigure-ui
          ????2.11.5
          ??


          然后在啟動(dòng)類加上@EnableZipkinServer標(biāo)記。

          import?org.springframework.boot.SpringApplication;
          import?org.springframework.boot.autoconfigure.SpringBootApplication;

          import?zipkin2.server.internal.EnableZipkinServer;

          @EnableZipkinServer
          @SpringBootApplication
          public?class?SpringcloudZipkinServerApplication?{

          ?public?static?void?main(String[]?args)?{
          ??SpringApplication.run(SpringcloudZipkinServerApplication.class,?args);
          ?}
          }

          application.properties文件中可修改默認(rèn)端口,server.port=10000。

          打開(kāi)相關(guān)頁(yè)面,如下:

          Zipkin Client

          再新建一個(gè)應(yīng)用程序。

          啟動(dòng)程序代碼基本一樣。

          import?org.slf4j.Logger;
          import?org.slf4j.LoggerFactory;
          import?org.springframework.boot.SpringApplication;
          import?org.springframework.boot.autoconfigure.SpringBootApplication;
          import?org.springframework.web.bind.annotation.RequestMapping;
          import?org.springframework.web.bind.annotation.RestController;

          @RestController
          @SpringBootApplication
          public?class?SpringcloudZipkinApplication?{

          ?private?static?Logger?log?=?LoggerFactory.getLogger(SpringcloudZipkinApplication.class);
          ?@RequestMapping("/")
          ?public?String?home()?{
          ??log.info("Handling?home");
          ??return?"Hello?World";
          ?}
          ?
          ?public?static?void?main(String[]?args)?{
          ??SpringApplication.run(SpringcloudZipkinApplication.class,?args);
          ?}
          }

          application.properties文件里加上Zipkin Server的地址,同時(shí)為了每次都將數(shù)據(jù)傳入Zipkin,需要把spring.sleuth.sampler.probability的值改為1.0。

          server.port=10002

          spring.application.name=sleuth-demo-with-zipkin
          spring.zipkin.base-url=http://localhost:10000
          spring.sleuth.sampler.probability=1.0

          啟動(dòng)Zipkin Client后,可以看到Zipkin Server頁(yè)面上多了一條追蹤數(shù)據(jù)。

          再次刷新Zipkin Client頁(yè)面,又會(huì)有條新的數(shù)據(jù)。

          在看控制臺(tái)的日志記錄,exportable項(xiàng)變成了true,說(shuō)明數(shù)據(jù)已傳入Zipkin。

          作者:Ken.W





          粉絲福利:Java從入門到入土學(xué)習(xí)路線圖

          ???

          ?長(zhǎng)按上方微信二維碼?2 秒


          感謝點(diǎn)贊支持下哈?

          瀏覽 21
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  伊人春色影院 | 黄色在线免费一级视频 | 日本级婬片A片AAA毛片炙热 | 成人91av视频在线看 | 成人 在线 欧美 |