一.创建zipkin服务并启动
- pom依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
- application
server:
port: 11008
spring:
application:
name : microservice-zipkin-server
- 开启zipkinserver
@EnableZipkinServer
@SpringBootApplication
public class ZipkinServerApplication {
public static void main(String[] args) {
SpringApplication.run(ZipkinServerApplication.class,args);
}
}
- 启动zipking-server 访问 localhost:11008
二创建zipkin-client-hi(提供服务)
- pom
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-sleuth-zipkin</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
</dependencies>
- application.yml
server:
port: 11010
spring:
application:
name: microservice-zipkin-client-backend
zipkin:
base-url: http://localhost:11008
-
引入zipkinclient
@RestController
public class UserController {@RequestMapping("/hi/{id}")
public String callHome(@PathVariable String id){
return “hello”+id;
}@Bean //注意该bean将自动引入zipkin
public AlwaysSampler defaultSampler(){
return new AlwaysSampler();
}
} -
启动访问 localhost:11010/hi/lili
查看localhost:11008即可查看到有追踪日志
三.后台访问接口模拟
- pom 及 application.yml 同上 修改端口为11011
- 引入zipkin
@RestController
public class UserController {
@Autowired
private RestTemplate restTemplate;
@Bean
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
@RequestMapping("/hi/{id}")
public String callHome(@PathVariable String id){
return restTemplate("http://localhost:11010/hi/"+id,String.class);
}
@Bean //注意该bean将自动引入zipkin
public AlwaysSampler defaultSampler(){
return new AlwaysSampler();
}
}