服务启动无法注册到 eureka

背景:

报错信息:
error creating bean with name 'eurekaAutoServiceRegistration': Singleton bean creation not allowed while singletons of this factory are in destruction (Do not request a bean from a BeanFactory in a destroy method implementation!)

在idea 启动的时候,程序在启动最后阶段,报错,大意是注册到eureka时失败了。

情况一:

原因

  • 本机上有相同的程序在运行,并且也是相同的名字已经注册到了eureka

解决方案

  • 看一下,eureka 是否已经存在同名的服务注册了;如果有:把对应的程序 kill 掉即可;如果没有,那。。本人暂时还没遇到过(遇到再说)



情况二:

今天又出现了,一样的报错,注册不成功,然后服务启动失败,心急地以为是起了相同名字的服务,找了几下,发现并没有。
然后网上找到,还以为是 eureka 哪里出现了问题,
但发现都不太对。

终于,再往上看报错记录。。。
发现了这一段:

[] 2023-01-09 17:34:47.733 ERROR  --- [           main] o.s.b.SpringApplication                  : Application startup failed
java.lang.IllegalStateException: No CacheResolver specified, and no unique bean of type CacheManager found. Mark one as primary (or give it the name 'cacheManager') or declare a specific CacheManager to use, that serves as the default one.
	at org.springframework.cache.interceptor.CacheAspectSupport.afterSingletonsInstantiated(CacheAspectSupport.java:212) ~[spring-context-4.3.11.RELEASE.jar:4.3.11.RELEASE]

emmm...... 原来不是 eureka 的问题,纯粹是服务启动有报错,导致eureka注册不成功。只是这一段异常和 eureka 几大段的异常记录相比,它就显得。。。很容易被忽略(一个小经验,看异常,要从上往下看)。很可能是上面的异常,导致下面的“不正常”。

嗯,好了,找到了真正的问题,就联想起,原来是在这个服务搞了一两个 CacheManager Bean, 一个是 redis的,后来加了一个 CaffeineCache..... 然后Bean 冲突了,
需要在这两个 CacheManager 中的某一个加上 @primary注解就好了。。。emmmmm

心急了心急了。

posted @ 2022-12-07 15:35  aaacarrot  阅读(1322)  评论(0编辑  收藏  举报