SpringCloud整合nacos启动异常: Application failed to connect to Nacos server: "" Action: Please check you

柔情只为你懂 2023-05-21 07:18 200阅读 0赞

一. 背景

在搭建SpringCloud整合nacos环境,服务有springcloud-product提供者和springcloud-order消费者,启动服务报异常如下:

  1. 2020-04-29 18:30:32.183 INFO 8228 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$266b225b] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
  2. . ____ _ __ _ _
  3. /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
  4. \\/ ___)| |_)| | | | | || (_| | ) ) ) )
  5. ' |____| .__|_| |_|_| |_\__, | / / / /
  6. =========|_|==============|___/=/_/_/_/
  7. :: Spring Boot :: (v2.1.6.RELEASE)
  8. 2020-04-29 18:30:33.078 ERROR 8228 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter :
  9. ***************************
  10. APPLICATION FAILED TO START
  11. ***************************
  12. Description:
  13. Application failed to connect to Nacos server: ""
  14. Action:
  15. Please check your Nacos server config
  16. Process finished with exit code 1

检查项目配置,发现配置都是OK的,疑惑了半天,下面贴一下项目环境。

在这里插入图片描述

二. 项目配置

1. 父工程依赖

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6. <groupId>org.example</groupId>
  7. <artifactId>springcloud-ribbon-hystrix</artifactId>
  8. <packaging>pom</packaging>
  9. <version>1.0-SNAPSHOT</version>
  10. <modules>
  11. <module>springcloud-product</module>
  12. <module>springcloud-order</module>
  13. </modules>
  14. <properties>
  15. <project.build.sourceEncoding> UTF-8 </project.build.sourceEncoding>
  16. <project.reporting.outputEncoding> UTF-8 </project.reporting.outputEncoding>
  17. <java.version> 1.8 </java.version>
  18. </properties>
  19. <dependencyManagement>
  20. <dependencies>
  21. <!--cloud -->
  22. <dependency>
  23. <groupId>org.springframework.cloud</groupId>
  24. <artifactId>spring-cloud-dependencies</artifactId>
  25. <version>Greenwich.SR2</version>
  26. <type>pom</type>
  27. <scope>import</scope>
  28. </dependency>
  29. <!-- SpringBoot的依赖配置 -->
  30. <dependency>
  31. <groupId>org.springframework.boot</groupId>
  32. <artifactId>spring-boot-dependencies</artifactId>
  33. <version>2.1.6.RELEASE</version>
  34. <type>pom</type>
  35. <scope>import</scope>
  36. </dependency>
  37. <!-- Alibaba-Cloud -->
  38. <dependency>
  39. <groupId>com.alibaba.cloud</groupId>
  40. <artifactId>spring-cloud-alibaba-dependencies</artifactId>
  41. <version>2.1.1.RELEASE</version>
  42. <type>pom</type>
  43. <scope>import</scope>
  44. </dependency>
  45. </dependencies>
  46. </dependencyManagement>
  47. </project>

2. springcloud-product工程

生产者springcloud-product和消费者springcloud-order依赖信息和配置基本一样,这里就贴springcloud-product的配置

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <parent>
  6. <artifactId>springcloud-ribbon-hystrix</artifactId>
  7. <groupId>org.example</groupId>
  8. <version>1.0-SNAPSHOT</version>
  9. </parent>
  10. <modelVersion>4.0.0</modelVersion>
  11. <artifactId>springcloud-product</artifactId>
  12. <properties>
  13. <project.build.sourceEncoding> UTF-8 </project.build.sourceEncoding>
  14. <project.reporting.outputEncoding> UTF-8 </project.reporting.outputEncoding>
  15. <java.version> 1.8 </java.version>
  16. </properties>
  17. <dependencies>
  18. <!-- web -->
  19. <dependency>
  20. <groupId>org.springframework.boot</groupId>
  21. <artifactId>spring-boot-starter-web</artifactId>
  22. </dependency>
  23. <!-- actuator -->
  24. <dependency>
  25. <groupId>org.springframework.boot</groupId>
  26. <artifactId>spring-boot-starter-actuator</artifactId>
  27. </dependency>
  28. <!-- Alibaba-nacos服务发现-->
  29. <dependency>
  30. <groupId>com.alibaba.cloud</groupId>
  31. <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  32. </dependency>
  33. <!-- Alibaba-nacos配置中心-->
  34. <dependency>
  35. <groupId>com.alibaba.cloud</groupId>
  36. <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
  37. </dependency>
  38. <!-- nacos-client -->
  39. <dependency>
  40. <groupId>com.alibaba.nacos</groupId>
  41. <artifactId>nacos-client</artifactId>
  42. <version>1.2.0</version>
  43. </dependency>
  44. <!-- hystrix断路器 -->
  45. <dependency>
  46. <groupId>org.springframework.cloud</groupId>
  47. <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
  48. </dependency>
  49. <!-- openfeign客户端 -->
  50. <dependency>
  51. <groupId>org.springframework.cloud</groupId>
  52. <artifactId>spring-cloud-starter-openfeign</artifactId>
  53. </dependency>
  54. <!-- lombok -->
  55. <dependency>
  56. <groupId>org.projectlombok</groupId>
  57. <artifactId>lombok</artifactId>
  58. </dependency>
  59. </dependencies>
  60. </project>

3. springcloud-product工程

  1. server:
  2. port: 8013
  3. spring:
  4. application:
  5. name: nacos-product
  6. cloud:
  7. nacos:
  8. discovery:
  9. enabled: true
  10. server-addr: 130.252.102.241:8848
  11. register-enabled: true

4. 启动类ProductApp

  1. package com.thinkingcao.product;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.cloud.client.SpringCloudApplication;
  4. /** * @desc: 商品服务-提供者 * @author: cao_wencao * @date: 2020-04-29 17:48 */
  5. @SpringCloudApplication
  6. public class ProductApp {
  7. public static void main(String[] args) {
  8. SpringApplication.run(ProductApp.class, args);
  9. }
  10. }

三. 原因总结

  • application.yml文件中我只配置了服务的注册与发现,并没有使用nacos的配置中心功能,但是我引用了spring-cloud-starter-alibaba-nacos-config这个包,是用来做配置中心的,这里要知道nacos为我们做了许多工作,在程序启动时,会动态的根据引入的依赖去加载初始对应的配置,无论是注册中心还是配置中心,所以我们既然没用到config的功能,就把这个依赖去掉。
  • 注意:
    SpringCloud项目中如果引用了nacos-discovery或者nacos-config,都无需再像之前使用Eureka那样加入@EnableDiscoveryClient注解启用其服务的注册与发现相关功能,可以省略掉。

在这里插入图片描述

四. 解决方式

1. 第一种方式

在pom.xml中去掉下面这个依赖

在这里插入图片描述

2. 第二种方式

新建bootstrap.yml,在bootstrap.yml中配置nacos-config的相关属性,这个属性是禁用Nacos Config自动配置,设置spring.cloud.nacos.config.enabled = false禁用Spring Cloud Nacos配置自动配置。

  1. spring:
  2. cloud:
  3. nacos:
  4. config:
  5. enabled: false #禁用nacos-config自动配置功能

在这里插入图片描述

五. 参考文档阿里巴巴文档

Spring Cloud Alibaba参考文档: Spring Cloud Alibaba参考文档

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,200人围观)

还没有评论,来说两句吧...

相关阅读