问题表现
spring boot 版本 2.0.6
spring cloud 版本 Finchley.SR2
使用spring-cloud-starter-zipkin + 独立部署的zipkin 进行链路追踪,但是如果项目同时使用 rabbitmq和spring-cloud-starter-bus-amqp 会导致 zipkin收集不到信息
原因
spring-cloud-starter-bus-amqp 中包含了 spring-rabbit的全部组件。
在引入 spring-cloud-starter-zipkin 后,默认与zipkin通信使用的是 http的方式。
同时引入 spring-rabbit后,与zipkin通信会变成使用rabbitmq。
解决方法
配置文件中加入或修改以下属性。就可以继续使用http的方式向zipkin通信。
spring.zipkin.sender.type: web
其他解决方案
1.配置zipkin使用rabbitmq进行信息收集。不再详述。