之前的文章中说到,提供者和消费者的微服务调用的日志跟踪,
SpringCloud之提供者架构Eureka+Sleuth+RabbitMQ
SpringCloud之消费者架构Eureka+Ribbon+Feign+Hystrix+Sleuth+RabbitMQ
使用Sleuth+RabbitMQ把日志发布到RabbitMQ中,让Zipkin订阅分析,本次就说一下Zipkin+RabbitMQ如何搭建,搭建方式较多
可以参看官方的
zipkin官方文档
可以使用docker如下命令搭建zipkin
docker run -d -p 9411:9411 openzipkin/zipkin
我觉得还是自己定制一个微服务较为灵活,下面使用SpringBoot搭建zipkin微服务
在pom.xml引入依赖
注意:
SpringBoot的版本为1.5.15
SpringCloud的版本为Edgware.SR4
<!--RabbitMQ+Zipkin -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-sleuth-zipkin-stream</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rabbit</artifactId>
</dependency>
<dependency>
<groupId>io.zipkin.java</groupId>
<artifactId>zipkin-autoconfigure-ui</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<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>
在application.yml中配置,zipkin的默认端口为9411,配置RabbitMQ,从RabbitMQ中订阅生产者和消费者的日志信息
server:
port: 9411
spring:
application:
name: zipkin
rabbitmq:
host: 120.77.245.104
port: 5672
username: guest
password: guest
在启动类总开启ZipkinServer,由于使用基于RabbitMQ的,使用注解@EnableZipkinStreamServer
@EnableZipkinStreamServer
@SpringBootApplication
public class ZipkinApplication {
public static void main(String[] args) {
SpringApplication.run(ZipkinApplication.class, args);
}
}