之前的文章中說到,提供者和消費者的微服務調用的日誌跟蹤,
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);
}
}