一、去除Apollo对CAT的依赖
Apollo对CAT是有依赖的,但不是强依赖,而是使用了SPI技术,只有项目里引用了cat-client才会生效。目前我们想把CAT客户端配置放在Apollo里,也就是在CAT客户端初始化之前从Apollo读取相应配置,这就形成了循环依赖,所以首先要去除Apollo对CAT客户端的依赖。
1、接口:MessageProducerManager
DefaultMessageProducerManager
:默认实现类
如果发现CAT客户端被引入时,这个类就会初始化CAT客户端并向CAT客户端发送消息。NullMessageProducerManager
:实现类,
类返回的是NullMessageProducer实例,任何消息都不发送。
2、创建文件
去除CAT的依赖,在项目里使用
NullMessageProducerManager
的实现类。
在META-INF/services
文件夹中创建如下文件:
com.ctrip.framework.apollo.tracer.spi.MessageProducerManager
并添加如下内容:
com.ctrip.framework.apollo.tracer.internals.NullMessageProducerManager
二、引入CAT客户端
1、pom依赖
<dependency>
<groupId>com.dianping.cat