下载Zipkin的jar包
启动Zipkin
java -jar zipkin-server-2.10.4-exec.jar
--zipkin.collector.rabbitmq.addresses=192.168.23.134
--zipkin.collector.rabbitmq.username=账号
--zipkin.collector.rabbitmq.password=密码
这样我们的Zipkin就ok了,接下来就是搭建client端。
Client端的搭建
首先我们选择的版本:
springboot:2.0.2.RELEASE
springcloud:Finchley.RELEASE
然后在consumer和product的pom文件和配置文件都是一样的。
pom文件的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-binder-rabbit</artifactId>
</dependency>
配置的内容:
spring.zipkin.sender.type= rabbit
spring.rabbitmq.host=192.168.23.136
spring.rabbitmq.port=5672
spring.rabbitmq.username=xxxx
spring.rabbitmq.password=xxxx
spring.rabbitmq.publisher-confirms=true
spring.rabbitmq.virtual-host=/
consumer的目录结构:
ConsumerOrderApplication代码:
@EnableDiscoveryClient
@SpringBootApplication
@RestController
public class ConsumerOrderApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumerOrderApplication.class, args);
}
@RequestMapping(value = "service2", method = RequestMethod.GET)
public String service2() {
return "Hi,I'm Service2!";
}
}
product的目录结构:
ProductApplication代码:
@EnableEurekaClient
@SpringBootApplication
@RestController
public class ProductApplication {
public static void main(String[] args) {
SpringApplication.run(ProductApplication.class, args);
}
@Bean
@LoadBalanced
RestTemplate restTemplate() {
return new RestTemplate();
}
@RequestMapping(value = "service1", method = RequestMethod.GET)
public String service1() {
return restTemplate().getForObject("http://e-book-consumer-order/service2", String.class);
}
}
然后启动你的eureka,zipkin,consumer,product。
注意,这里启动过后可能你的consumer和product都还没有连接rabbitmq成功,所以要等,我在这里卡了很久,后来才发现要等很久,我差不多等了3-4分钟rabbitmq才连接成功。你可以看下:
如果有三个说明连接成功了。
访问http://localhost:8084/service1
刷新zipkin。
出现这个说明链路跟踪成功!
感谢大家的观看,如果有交流的小伙伴可以私信我或者加我的qq997355706。