记录解决SpringBoot3 + Spring Cloud 2021.0.X +nacos2.x 服务注册发现失效问题
问题说明:
使用Spring Cloud 2021.0.4、Spring Cloud Alibab 2021.0.4.0、Spring Boot 3.0.6。nacos版本2.2.2。
服务启动后发现没有注册到nacos。但是能够正常读取到nacos中的配置文件。 通过debug,发现NacosAutoServiceRegistration没有加载。所以猜测是SpringBoot 没有扫描到NacosAutoServiceRegistration类进行装配。因为可以正常获取到nacos配置中心的文件,所以可以确定不是SpringBoot的问题。
然后将目光放在版本兼容的问题上。开始从nacos的 issues 找,看有没有遇到相同的问题。
在nacos官方找到Spring Cloud 工程中需要使用 spring-cloud-starter-alibaba-nacos-config。
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>${latest.version}</version>
</dependency>
修改后仍然无效。
最后在nacos的github上找到建议开始进行 Spring Boot 3 的适配 · Issue #9535 · alibaba/nacos · GitHub
最终将SpringCloud Alibaba 版本升级到 2022.0.0,至此问题解决。
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2022.0.0.0-RC1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2022.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
或者可以尝试单独修改nacos版本到 2022.0.0.0-RC1