Nacos配置中心各种问题汇总

以下是我按安装nocos所遇到的问题,虽然说不能全部,但踩的坑一堆,所以总结一下:

问题一:安装版本

这个问题是很难找到的问题,找不到问题重新对应版本是个不错的思路,需要去对应的官网找到对应的版本号,以我自身为例:
我使用的springnboot版本为2.6.13
spring版本
所以在官网对应的分支:
对应分支
往下找到对应的版本:
版本对应
所以为下载了2.2.0版本,其他版本参考官网

问题二:nacos安装时首先该为单机模式

部分报错信息:

java.io.IOException: java.lang.IllegalArgumentException: db.num is null
        at com.alibaba.nacos.config.server.service.datasource.ExternalDataSourceServiceImpl.reload(ExternalDataSourceServiceImpl.java:134)
        at com.alibaba.nacos.config.server.service.datasource.ExternalDataSourceServiceImpl.init(ExternalDataSourceServiceImpl.java:106)
        at com.alibaba.nacos.config.server.service.datasource.DynamicDataSource.getDataSource(DynamicDataSource.java:53)
        at com.alibaba.nacos.config.server.service.repository.extrnal.ExternalStoragePersistServiceImpl.init(ExternalStoragePersistServiceImpl.java:138)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389)
        at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:333)
        at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:157)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:440)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1796)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
        at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
        at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311)
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657)

修改处cluster改为standalone,即:

set CUSTOM_SEARCH_LOCATIONS=file:%BASE_DIR%/conf/

set MODE="standalone"
set FUNCTION_MODE="all"
set SERVER=nacos-server
set MODE_INDEX=-1
set FUNCTION_MODE_INDEX=-1
set SERVER_INDEX=-1
set EMBEDDED_STORAGE_INDEX=-1
set EMBEDDED_STORAGE=""

问题三:Nacos启动闪退问题:

这是因为启动时报错了导致的版本启动失败,
解决:
编辑startup.cmd最后添加

rem start nacos command
%COMMAND%

会保留控制台,然后可以找到对应的问题,
我的报错因不能复现,但究其原因是下载或解压的时候出现问题,导致版本缺失,重新解压或下载就好

问题三:获取不到Nacos配置中心

这个原因有很多,可以参照我的踩坑逐一排查一下,希望有所帮助:

原因一、版本依赖对应不上:

我的版本依赖为:

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>2.2.0.RELEASE</version>
        </dependency>

当版本对应不上会有很多不知名的问题,又很容易忽略,要看你下载的nacos是什么版本,然后添加对应依赖

原因二:加载不到Nacos config

先看看控制台:


2023-07-30 13:56:53.790  INFO 2476 --- [           main] c.e.o.c.OnlineMallCouponApplication      : Starting OnlineMallCouponApplication using Java 1.8.0_371 on zuwo-win with PID 2476 (C:\Users\Administrator\Desktop\online-mall\online-mall-coupon\target\classes started by Administrator in C:\Users\Administrator\Desktop\online-mall)
2023-07-30 13:56:53.793  INFO 2476 --- [           main] c.e.o.c.OnlineMallCouponApplication      : No active profile set, falling back to 1 default profile: "default"
2023-07-30 13:56:54.581  INFO 2476 --- [           main] o.s.cloud.context.scope.GenericScope     : BeanFactory id=971d9144-9112-3a5d-b71f-216463cc6150
2023-07-30 13:56:54.908  INFO 2476 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8010 (http)
2023-07-30 13:56:54.916  INFO 2476 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2023-07-30 13:56:54.916  INFO 2476 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.68]
2023-07-30 13:56:55.071  INFO 2476 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2023-07-30 13:56:55.071  INFO 2476 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1234 ms
2023-07-30 13:56:55.146  INFO 2476 --- [           main] c.a.d.s.b.a.DruidDataSourceAutoConfigure : Init DruidDataSource
2023-07-30 13:56:55.232  INFO 2476 --- [           main] com.alibaba.druid.pool.DruidDataSource   : {dataSource-1} inited
 _ _   |_  _ _|_. ___ _ |    _ 
| | |\/|_)(_| | |_\  |_)||_|_\ 
     /               |         
                        3.5.1 
2023-07-30 13:56:56.221  INFO 2476 --- [           main] o.s.c.openfeign.FeignClientFactoryBean   : For 'online-mall-member' URL not provided. Will try picking an instance via load-balancing.
2023-07-30 13:56:56.513  INFO 2476 --- [           main] o.s.b.a.w.s.WelcomePageHandlerMapping    : Adding welcome page: class path resource [static/index.html]
2023-07-30 13:56:56.996  WARN 2476 --- [           main] iguration$LoadBalancerCaffeineWarnLogger : Spring Cloud LoadBalancer is currently working with the default cache. While this cache implementation is useful for development and tests, it's recommended to use Caffeine cache in production.You can switch to using Caffeine cache, by adding it and org.springframework.cache.caffeine.CaffeineCacheManager to the classpath.
2023-07-30 13:56:57.069  INFO 2476 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8010 (http) with context path ''
2023-07-30 13:56:57.139  INFO 2476 --- [           main] c.a.c.n.registry.NacosServiceRegistry    : nacos registry, online-mall-coupon 192.168.1.144:8010 register finished
2023-07-30 13:56:57.292  INFO 2476 --- [           main] c.e.o.c.OnlineMallCouponApplication      : Started OnlineMallCouponApplication in 4.074 seconds (JVM running for 4.766)

在上面是看不到加载nacos config的,需要添加依赖:

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
            <version>3.1.5</version>
        </dependency>

原因四:在配置中心的data ID对应不上,

在官网是有严格说明的,
在这里插入图片描述
所以我们可以在yml页配置,(此时要注意配置的优先级可参考
总的来说是bootstrap.properties>bootstrap.yml>…>application.properties>application.yml
所以配置中心不起作用的时候注意是不是 优先级不够被覆盖 等问题
此时我们就可以创建bootstrap.properties,来指定配置了,一下是个人配置:

coupon.user.name=dsdhafsd
spring.application.name=online-mall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.file-extension=yaml

在配置中心的配置为
nacos配置中心
注意修改后缀yaml,配置格式=ID的后缀=配置文件的指定后缀
最后获取成功:
在这里插入图片描述
希望可以帮助各位

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值