一、首先说问题:
- 1、springCloud在使用链路追踪组件sleuth整合zipkin的过程中链路追踪信息切都是正常;
- 2、微服务太多需要使用组件Config对每个微服务的的配置文件进行统一管理;
- 3、config对微服务进行管理,但是如果某一个配置发生改变,如果每个微服务都要重启才能获取最新的配置文件就不合理,那么springCloud提供了spring cloud Bus组件来刷新配置,使用消息中间件(官方推荐RabbitMQ)不需要重启微服务就可以获取最新配置。
- 4、当spring cloud Bus 配置完成之后zipkin完全收集不到链路追踪信息了。。。
二、寻找解决方案
最开始遇到这个问题时,认为是自己配置在哪里有问题,反复确认没有问题。然后开始狂论坛,问大牛。得到的答案是springcloud不成熟,可能存在bug,既然有bug(我也不知道该怎么解决),但是如果链路追踪不能使用,对整个微服务的调用依赖,每个微服务的调用请求耗时就没有办法定位,对后期的维护是不利的。只能放弃分布式配置,但是也不好,如果修改了一个配置文件,每个微服务都要重启,对于后期的维护也是不利的。只能继续寻找解决方案。
三、问题分析
- 1、出现这个问题,首先想到的是要去官方文档上寻找答案;丢一个springcloud文档:springcloud Finchley SR2。
- 2、使用springcloud Bus需要使用rabbitMQ,但是zipkin收集信息是http(文档)
If you want both Sleuth and Zipkin, add the spring-cloud-starter-zipkin dependency.
The following example shows how to do so for Maven:
Maven.
<dependencyManagement> 1
<dependencies&g