nacos配置中心遇到的问题

这篇具有很好参考价值的文章主要介绍了nacos配置中心遇到的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介

最近在自己搭建的单机nacos使用中遇到的配置中心问题,这里做一个总结。

参考

SpringCloud Alibaba 2021版 nacos 配置中心教程

SpringBoot使用spring.config.import多种方式导入配置文件

解决 Spring Cloud 2021.0.5 版本,使用 nacos 做配置中心,报 No spring.config.import property has been defined 的问题

SpringCloud + Nacos 配合maven,进行环境(配置文件)的切换,dev/ prod/ test 三种环境

nacos从1.x升级到2.x需要注意的地方

Nacos使用2.0.1版本启动出现9848端口错误的解决方式(亲测有效)

放在最前

spring-cloud-alibaba版本说明

在使用spring-cloud-alibaba之前一定要了解的版本说明,一定要使用官方推荐的版本对应关系,避免出现异常问题。

问题根源

本质上一句话:版本兼容

简单概括:1.x版本nacos-client能访问2.x版本nacos-server,但是2.x版本nacos-client不能访问1.x nacos-server

nacos2.x1.x的变化还是挺大的,尤其是我在使用配置中心功能时,折磨我两天,怎么也没找到问题解决方法。更我奇怪的是之前学习nacos时搭的一个项目能正常启动,注册并访问到配置文件,然而新搭建的项目就是各种问题,Could not resolve placeholderConnection refused: no further information: xxxxx:9848等等报错,更关键的是我使用maven管理项目环境,通过@@的方式配置的配置文件,期间还一直怀疑是这个的原因。总之,查了许多博客,看了很多解决方案,也都尝试了,最终还是解决了。

问题总结

声明:我没有细抠本质,或是说源码,只是说我遇到问题的解决,帮助其他人避免这些问题。

版本统一

这个是必须的,一定要按照官方的版本对应关系引入,不然第一步就错了。

明确版本

明确版本后就是用对应的使用方式,nacos2.x1.x,前面提到我怀疑过是因为maven对环境配置所以导致我使用nacos产生问题的,后来排查出不是它,也就不带maven讨论了,SpringCloud + Nacos 配合maven,进行环境(配置文件)的切换,dev/ prod/ test 三种环境感兴趣的看这篇文章。

新特性及其使用(引用)

  • 支持 spring.config.import
    这里假设有一个配置文件(bootstrap.yml),升级到新版本应该怎么配置呢
# bootstrap.yml
spring:
  cloud:
    nacos:
      config:
        name: test.yml
        group: DEFAULT_GROUP
        server-addr: 127.0.0.1:8848
        extension-configs:
          - dataId: test01.yml
            group: group_01
          - dataId: test02.yml
            group: group_02
            refresh: false

这两个配置是等价的

# application.yml
spring:
  cloud:
    nacos:
      config:
        group: DEFAULT_GROUP
        server-addr: 127.0.0.1:8848
  config:
    import:
      - optional:nacos:test.yml  # 监听 DEFAULT_GROUP:test.yml
      - optional:nacos:test01.yml?group=group_01 # 覆盖默认 group,监听 group_01:test01.yml
      - optional:nacos:test02.yml?group=group_02&refreshEnabled=false # 不开启动态刷新
      - nacos:test03.yml # 在拉取nacos配置异常时会快速失败,会导致 spring 容器启动失败

注意事项:

如果使用 spring.config.import 就不能使用 bootstrap.yml/properties 引入配置的方式了 !!!

如果引入了spring-cloud-starter-alibaba-nacos-config,并且使用 import 方式导入配置,项目启动时会自动检测是否引入了 nacos:条目,如果没有 import nacos 条目,会出现如下错误:

The spring.config.import property is missing a nacos: entry
Action:
Add a spring.config.import=nacos: property to your configuration.
    If configuration is not required add spring.config.import=optional:nacos: instead.
    To disable this check, set spring.cloud.nacos.config.import-check.enabled=false.

你可以手动通设置 spring.cloud.nacos.config.import-check.enabled=false 关闭它,但是不建议这么做,这个功能可以帮助你检查是否引入多余依赖

假如想保留以前的使用方式 (bootstrap引入配置),你只需要添加依赖 pring-cloud-starter-bootstrap 依赖,不需要修改一行代码

新版的配置方式是有些不同的,我的建议还是使用新版就遵循新版。

端口开放与配置建议

新版nacos需要开放9848端口。

生产建议的话,除了严格限制源ip注册访问到nacos外,建议有需要的加上权限访问配置,另外关于namespacegroupdataid,建议如下:

namespace:建议与git常驻分支一致,如devtestpreprod,一个命名空间下有着一整套类同于生产的服务和配置。

group:建议与团队组织架构一致,如:技术研发部、中台研发部、后台研发部、客户端研发部、数据研发部等等,取其英文简称即可

dataid:建议与项目名称一致,一般格式是xxx-xxx-xxx,这个就自由一点了,约定一下就好,问题不大

Nacos naming推送失败/failedPush异常指标激增

Nacos naming推送失败数 · Issue #6841

Nacos集群failedPush异常指标激增 · Issue #8676

因为我是使用官网nacos单节点docker-compose部署方式部署的,另外带了prometheusgrafana,而且配置了nacos监控和钉钉报警,所以也一直被这个问题困扰。

如有类似疑问,先看上面Issue,其实上面的没有给我太多帮助,反而将nacos重启一下就没问题,我猜测很有可能是之前错误注册后读取配置失败次数太多有关,我暂时也不想深究了。文章来源地址https://www.toymoban.com/news/detail-472232.html

到了这里,关于nacos配置中心遇到的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringCloud(17~21章):Alibaba入门简介、Nacos服务注册和配置中心、Sentinel实现熔断与限流、Seata处理分布式事务

    Spring Cloud Netflix项目进入维护模式 https://spring.io/blog/2018/12/12/spring-cloud-greenwich-rc1-available-now 说明 Spring Cloud Netflix Projects Entering Maintenance Mode 什么是维护模式 将模块置于维护模式,意味着 Spring Cloud 团队将不会再向模块添加新功能。我们将修复 block 级别的 bug 以及安全问题,我

    2024年01月19日
    浏览(57)
  • SpringCloud Alibaba--nacos简介和注册中心和登录

    目录 一.理论基础 二.nacos 2.1 简介 2.2 安装 三.父项目 三.生产者 3.1 配置依赖 3.2 配置文件 3.3 启动类 3.4 控制类 四.消费者 4.1 配置依赖 4.2 配置文件 4.3 启动类 4.4 feign的接口 五.效果 六.负载均衡--权重算法 6.1重启nacos 6.2 设置权重 6.3 设置配置 6.4 效果 SpringCloudAlibaba-登录 1.登录

    2024年04月26日
    浏览(35)
  • Nacos配置中心中配置文件的创建、微服务读取nacos配置中心

    在企业项目中会有非常多的服务,不同的开发环境还有不同的配置文件,所以就导致配置文件非常多。 那么肯定就会有一些公共配置,多个服务都是使用过一样的,那么就可以使用配置中心来进行统一管理,避免修改一个配置项要去各个服务都改一遍。 使用传统方式的配置

    2024年02月02日
    浏览(39)
  • 记录一次SpringBoot3+Nacos Config做配置中心时,No spring.config.import property has been defined的问题

    以下为报错信息: No spring.config.import property has been defined 启动时,控制台已经很明确的给出了一个标准的解决方案: Add a spring.config.import=nacos: property to your configuration. If configuration is not required add spring.config.import=optional:nacos: instead. To disable this check, set spring.cloud.nacos.config.import

    2024年02月11日
    浏览(63)
  • 解决 Spring Cloud 2021.0.5 版本,使用 nacos 做配置中心,报 No spring.config.import property has been defined 的问题

    报错信息如下 Description: No spring.config.import property has been defined Spring 官方给出的解决方案如下 Add a spring.config.import=nacos: property to your configuration. If configuration is not required add spring.config.import=optional:nacos: instead. To disable this check, set spring.cloud.nacos.config.import-check.enabled=false. 这里只

    2024年02月11日
    浏览(59)
  • Nacos 注册中心和配置中心

                            打开nacos虚拟机

    2024年02月06日
    浏览(34)
  • Nacos配置中心 (介绍与配置)

    当微服务部署的实例越来越多,达到数十、数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错。我们需要一种统一配置管理方案,可以集中管理所有实例的配置。 Nacos一方面可以将配置集中管理,另一方可以在配置变更时,及时通知微服务,实现配置的热更新。

    2024年02月02日
    浏览(36)
  • Nacos实现配置中心

    统一管理不同环境、不同集群的配置 配置修改实时生效(热发布) 版本管理,每次配置的修改都会有版本记录,可随时回滚 权限管理。配置中心可交给专人来管理,做到配置的权限管理 使用配置中心之前,一般这样实现配置,把配置都放到配置文件中,Java代码通过@Value去拿

    2024年02月16日
    浏览(61)
  • Nacos源码 (4) 配置中心

    本文阅读nacos-2.0.2的config源码,编写示例,分析推送配置、监听配置的原理。 构造方法: 创建ConfigFilterChainManager - 过滤器链 创建ServerListManager - 服务器列表管理 创建ClientWorker - 用来发送请求,内部封装了一个ConfigRpcTransportClient类型对象agent,它能够获取到RpcClient与服务端进行

    2024年02月12日
    浏览(27)
  • Nacos:配置中心(三)

    目录 1.Nacos定位 2.Nacos的安装配置 3.整合Nacos 3.1.Nacos安装 3.2.Nacos登录 3.3.配置Nacos      4.Nacos使用 4.1.引入 Maven 依赖 4.2.配置bootstrap.yml 4.3.Nacos配置类 4.4.启用Nacos服务 4.5.测试获取配置 5.加载多个配置文件 datasource-dev.yaml mybatis-plus-dev.yaml 本地文件bootstrap.yml Contro代码 测试结果

    2024年02月03日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包