Sleuth链路跟踪
原文在github,有些相对路径连接不能跳转,如想看原文项目地址 spingboot2.1.3加springcloud G版本,如果觉的不错给个star 谢谢!
sleuth简介
随着业务的不断扩张,服务之间互相调用会越来越复杂。这时,如果想看一个请求的调用顺序是相当繁琐,所以引入sleuth记录调用请求。
前期准备
-
zipkin的安装
只需要下载jar即可,下载地址: https://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/ 运行命令: java -jar zipkin-server-2.9.0-exec.jar 成功后访问 http://localhost:9411 可以看到链路界面效果
构建工程
构建三个服务调用链供展示使用
spring-cloud-sleuth-server
- maven依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
- application.properties配置
server.port=8008
spring.zipkin.base-url=http://localhost:9411
spring.application.name=spring-cloud-sleuth
- 启动类示例
@SpringBootApplication
@RestController
public class SpringCloudSleuthApplication {
@Autowired
private RestTemplate restTemplate;
public static void main(String[] args) {
SpringApplication.run(SpringCloudSleuthApplication.class, args);
}
@Bean
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
@RequestMapping("/hello")
public String callHome(){
System.out.println("calling trace service-hi ");
return restTemplate.getForObject("http://localhost:8009/hello", String.class);
}
@Bean
public Sampler defaultSampler() {
return Sampler.ALWAYS_SAMPLE;
}
}
可以看到我们访问 http://localhost:8008/hello时,向8009发送了一个请求,所有我们应该有个端口有8009的服务。
spring-cloud-sleuth-clientA和spring-cloud-sleuth-clientA代码和上述相同,不做代码展示。
直接启动这两个项目和spring-cloud-sleuth-server
访问 http://localhost:8008/hello
打开zipkin页面
sleuth-follow.png sleuth-dependeny.png可以看到调用顺序,还有依赖关系。
网友评论