问题:
- 这两天在集成美团点评cat监控平台时,一直报错,无法上报信息。
解决过程:
- 一开始以为是配置文件配置有问题,找了半天没发现啥问题
- 又想着是不是jar包冲突的问题,因为看到有人说netty版本的问题,不过试了一下不管用
- 因为是比较老的项目,不知道是不是有其他jar包影响到了cat,于是新建了个springboot项目,同样的配置,通过Application#main方法居然成功了,说明配置没问题。一个是springboot、一个是普通spring项目感觉也没啥差别。。。
半天过去了,没辙了,,,后来第二天google了一下,就找到个cat的issue:https://github.com/dianping/cat/issues/1071,有个回复说是使用了tomcat7插件启动就会有问题,改成jetty、tomcat容器就可以了。
试了一下就可以了,,,,具体原因没细分析。
所以解决方法之一:
- 使用tomcat容器启动项目,而不是tomcat7的maven插件
报错信息如下:
java.lang.RuntimeException: Unable to get instance of Logger, please make sure the environment was setup correctly!
at org.unidal.initialization.DefaultModuleContext.setup(DefaultModuleContext.java:122)
at org.unidal.initialization.DefaultModuleContext.<init>(DefaultModuleContext.java:30)
at com.dianping.cat.Cat.initialize(Cat.java:199)
at com.dianping.cat.Cat.checkAndInitialize(Cat.java:79)
at com.dianping.cat.Cat.getProducer(Cat.java:177)
at com.dianping.cat.Cat.logEvent(Cat.java:325)
at redis.clients.jedis.Connection.sendCommand(Connection.java:90)
at redis.clients.jedis.BinaryClient.ping(BinaryClient.java:88)
at redis.clients.jedis.BinaryJedis.ping(BinaryJedis.java:79)
at redis.clients.jedis.JedisFactory.validateObject(JedisFactory.java:100)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:488)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:361)
at redis.clients.util.Pool.getResource(Pool