SpringCloud系列:10.Spring Cloud Sleuth与Spring Cloud Bus冲突问题

在Spring Cloud Sleuth集成时,发现与Spring Cloud Bus存在冲突,这在上一章实例中已经说明及解决,这里任然单独列出,方便问题搜索,万一存在同样问题的小伙伴呢。

一、问题描述

项目已使用Spring Cloud Bus动态刷新Config配置文件,Bus使用的是RabbitMq,依赖jar为spring-cloud-starter-bus-amqp。

然后引入组件Sleuth,Sleuth依赖spring-cloud-starter-zipkin。

然后发现,zipkin界面并不展示引入了Bus的服务,也无法收集对应服务的请求状态,而另外没有使用Bus的服务则可以被收集,因此排除了zipkin本身的问题。

当注掉spring-cloud-starter-bus-amqp依赖后,请求通信可以成功被收集,于是可以看出,zipkin与bus存在冲突。

冲突原因猜想,zipkin与服务间通信默认使用的是 http的方式,而在引入spring-rabbit后,zipkin与服务间通信会变成使用rabbitmq,所以Zipkin Server便再无法正确收集到请求调用信息。

二、解决方案

1.放弃使用Bus,额,如果这也算一种方案的话。

2.引入spring-rabbit后,zipkin与服务间通信会变成使用rabbitmq,使得zipkin默认的http通信机制不生效,所以我们明确指明zipkin使用http通信即可。在使用了Bus的服务配置文件中添加spring.zipkin.sender.type: web,告诉zipkin使用http通信,这个设置后,zipkin请求收集正常,但是Bus读取Config配置文件报错,还需要添加spring.sleuth.web.client.enabled:true,之后报错消失,zipkin使用正常。

3.如果项目允许,更改zipkin的通信方式为RabbitMq。

详情可以查看系列博文Sleuth集成:https://blog.csdn.net/Simple_Yangger/article/details/90141540

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值