浅尝Spring Cloud Sleuth

 Spring Cloud Sleuth提供了分布式追踪(distributed tracing)的一个解决方案。其基本思路是在服务调用的请求和响应中加入ID,标明上下游请求的关系。利用这些信息,可以方便地分析服务调用链路和服务间的依赖关系。

Only Sleuth

在Spring Tool Suite的文件菜单中,点击新建Spring Starter Project。

在请求处理方法内加上一行日志代码。

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);     } }

设定应用程序端口及名称。

server.port=10001  spring.application.name=sleuth-demo-without-zipkin

启动程序并浏览页面后,可以看到日志信息里多了点东西。

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

这一串数据里包含四个部分

  • appname - 应用程序名称
  • traceId - 追踪系统中的唯一标识
  • spanId - 具体操作的唯一标识
  • exportable - 是否日志要导出到Zipkin

Sleuth + Zipkin

Zipkin Server

要想把追踪数据发送到Zipkin上,首先需要建立一个Zipkin Server应用程序,在pom.xml里加上如下依赖:

<dependencies>   <dependency>     <groupId>org.springframework.boot</groupId>     <artifactId>spring-boot-starter</artifactId>   </dependency>    <dependency>     <groupId>org.springframework.boot</groupId>     <artifactId>spring-boot-starter-test</artifactId>     <scope>test</scope>   </dependency>    <dependency>     <groupId>io.zipkin.java</groupId>     <artifactId>zipkin-server</artifactId>     <version>2.11.5</version>   </dependency>      <dependency>     <groupId>io.zipkin.java</groupId>     <artifactId>zipkin-autoconfigure-ui</artifactId>     <version>

                    
                
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信