-
JDK 8
-
spring boot 2.0.7.RELEASE
-
cat-client 3.0.0
-
apollo-client 1.3.0
[](()去除Apollo对CAT的依赖
众所周知,Apollo对CAT是有依赖的,但不是强依赖,而是使用了SPI技术,只有项目里引用了cat-client才会生效。目前我们想把CAT客户端配置放在Apollo里,也就是在CAT客户端初始化之前从Apollo读取相应配置,这就形成了循环依赖,所以首先要去除A 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》开源 pollo对CAT客户端的依赖。
查看Apollo客户端的源码,我发现有一个叫做MessageProducerManager
的接口,再看一下META-INF\services\com.ctrip.framework.apollo.tracer.spi.MessageProducerManager文件,发现这个接口的默认实现是DefaultMessageProducerManager
,如果发现CAT客户端被引入时,这个类就会初始化CAT客户端并向CAT客户端发送消息。MessageProducerManager
接口还有另外一个实现,就是NullMessageProducerManager
类,这个类返回的是NullMessageProducer实例,任何消息都不发送。
想要去除CAT的依赖,在项目里使用NullMessageProducerManager
的实现就可以了。在MET