Nacos配置中心

简介: Nacos配置中心

1、简介

  nacos管理配置文件方式是在自己所在的服务器上形成一个版本库,因此不需要再创建远程版本库。
  Nacos作为统一配置中心管理配置文件时,同样也是存在版本控制。

2、开发微服务作为统一配置中心客户端将配置交给nacos进行管理

2.1 创建项目并引入nacos配置中心依赖

 <!--引入nacos client 依赖-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!--引入配置中心依赖-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

在这里插入图片描述

2.2 配置配置中心地址

文件名必须为bootstrap.properties
# 告诉config server地址
spring.cloud.nacos.config.server-addr=192.168.159.22:8848

#从哪个命名空间获取配置(命名空间ID)
spring.cloud.nacos.config.namespace=781c1432-8a70-413f-aaa8-559cac6057ed

#告诉从哪个组进行配置获取
spring.cloud.nacos.config.group=DEFAULT_GROUP
#从这个组中拉取哪个配置文件
spring.cloud.nacos.config.name=configclient-prod
#指定读取文件后缀
spring.cloud.nacos.config.file-extension=properties

在这里插入图片描述

2.3 在Nacos中创建配置

在这里插入图片描述

在这里插入图片描述
记住custom.username这个值,我们在后面会用到,先不用管上面的public|EMS|dangdang三个命名空间。

2.4 编写控制器测试配置读取情况


@RestController
@RefreshScope   //允许远端配置修改自动刷新
@Slf4j
public class DemoController {

    @Value("${custom.username}")
    private String username;

    @GetMapping("/demo")
    public String demo(){
        log.info("demo ok!!!");
        return "demo ok !!! username:"+username;
    }
}

在这里插入图片描述

2.5 启动项目并测试

在这里插入图片描述
在这里插入图片描述

可以看到,配置拉取成功了。

2.6 实现自动配置刷新(比consul+config+Spring Cloud Bus那个简单多了)

默认情况下nacos已经实现了自动配置刷新功能,如果需要刷新配置直接在控制器中加入@@RefreshScope 注解即可。
在这里插入图片描述
我们现在nacos上修改配置
在这里插入图片描述
点击发布:
在这里插入图片描述
测试,可以看到配置已经自动刷新了,真的比config+consul+bus那个简单多了,阿里云好牛逼。
在这里插入图片描述

3 nacos配置中心细节

3.1 DataId

用来读取远程配置中心的中具体配置文件其完整格式如下:

${prefix}-${spring.profile.active}.${file-extension}
  • prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
  • spring.profile.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
  • file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。

3.2 微服务拉取配置的两种方式

3.2.1 第一种(dataId=name+file-extension)

# 告诉config server地址
spring.cloud.nacos.config.server-addr=192.168.159.22:8848

#从哪个命名空间获取配置(命名空间ID)
spring.cloud.nacos.config.namespace=781c1432-8a70-413f-aaa8-559cac6057ed

#告诉从哪个组进行配置获取
#spring.cloud.nacos.config.group=DEFAULT_GROUP
spring.cloud.nacos.config.group=CONFIGCLIENT


#第一种配置文件获取方式 dataId=name+file-extension
#从这个组中拉取哪个配置文件
spring.cloud.nacos.config.name=configclient-prod
#指定读取文件后缀
spring.cloud.nacos.config.file-extension=properties

在这里插入图片描述

3.2.2 第二种(dataId=prefix+env+file-extension)

# 告诉config server地址
spring.cloud.nacos.config.server-addr=192.168.159.22:8848

#从哪个命名空间获取配置(命名空间ID)
spring.cloud.nacos.config.namespace=781c1432-8a70-413f-aaa8-559cac6057ed

#告诉从哪个组进行配置获取
#spring.cloud.nacos.config.group=DEFAULT_GROUP
spring.cloud.nacos.config.group=CONFIGCLIENT


#第二种配置文件获取方式 dataId=prefix+env+file-extension
spring.cloud.nacos.config.prefix=configclient
spring.profiles.active=prod
spring.cloud.nacos.config.file-extension=properties

在这里插入图片描述

3.3 统一配置中心nacos三个重要概念

3.3.1 命名空间:namespace

默认nacos安装完成之后会有一个默认的命名空间,这个命名空间的名字为public。
作用:站在项目总角度隔离每一个项目配置文件。

3.3.2 组:group

默认nacos中在管理配置文件时不显示指定group名称则默认的组名称为DEFAULT_GROUP
作用:站在项目中每个服务角度,隔离同一个项目中不同服务的配置

3.3.3 文件名:dataId

获取一个配置文件的唯一标识。
目录
相关文章
|
5天前
|
负载均衡 应用服务中间件 Nacos
Nacos配置中心
Nacos配置中心
22 1
Nacos配置中心
|
4月前
|
Java Nacos 数据库
使用 nacos 搭建注册中心及配置中心
使用 nacos 搭建注册中心及配置中心
99 5
|
4月前
|
NoSQL Java Nacos
SpringCloud集成Seata并使用Nacos做注册中心与配置中心
SpringCloud集成Seata并使用Nacos做注册中心与配置中心
132 3
|
1天前
|
监控 Java 测试技术
Nacos 配置中心变更利器:自定义标签灰度
本文是对 MSE Nacos 应用自定义标签灰度的功能介绍,欢迎大家升级版本进行试用。
|
4天前
|
网络安全 Nacos 开发者
Nacos作为流行的微服务注册与配置中心,“节点提示暂时不可用”是常见的问题之一
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。然而,“节点提示暂时不可用”是常见的问题之一。本文将探讨该问题的原因及解决方案,帮助开发者快速定位并解决问题,确保服务的正常运行。通过检查服务实例状态、网络连接、Nacos配置、调整健康检查策略等步骤,可以有效解决这一问题。
14 4
|
4天前
|
Java 网络安全 Nacos
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。然而,实际使用中常遇到“客户端不发送心跳检测”的问题。本文深入探讨该问题的原因及解决方案,帮助开发者快速定位并解决问题,确保服务正常运行。通过检查客户端配置、网络连接、日志、版本兼容性、心跳策略、注册状态、重启应用和环境变量等步骤,系统地排查和解决这一问题。
16 3
|
4天前
|
安全 Nacos 数据库
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改。本文详细探讨了这一问题的原因及解决方案,包括限制公网访问、使用HTTPS、强化数据库安全、启用访问控制、监控和审计等步骤,帮助开发者确保服务的安全运行。
16 3
|
13天前
|
SQL 关系型数据库 数据库连接
"Nacos 2.1.0版本数据库配置写入难题破解攻略:一步步教你排查连接、权限和配置问题,重启服务轻松解决!"
【10月更文挑战第23天】在使用Nacos 2.1.0版本时,可能会遇到无法将配置信息写入数据库的问题。本文将引导你逐步解决这一问题,包括检查数据库连接、用户权限、Nacos配置文件,并提供示例代码和详细步骤。通过这些方法,你可以有效解决配置写入失败的问题。
37 0
|
2月前
|
负载均衡 Java Nacos
SpringCloud基础2——Nacos配置、Feign、Gateway
nacos配置管理、Feign远程调用、Gateway服务网关
SpringCloud基础2——Nacos配置、Feign、Gateway
|
3月前
|
安全 Nacos 数据安全/隐私保护
升级指南:从Nacos 1.3.0 到 2.3.0,并兼容 Seata 的鉴权配置
本文详细介绍了如何在微服务环境下从 Nacos 1.3.0 升级到 2.3.0,并确保 Seata 各版本的兼容性。作者小米分享了升级过程中的关键步骤,包括备份配置、更新鉴权信息及验证测试等,并解答了常见问题。通过这些步骤,可以帮助读者顺利完成升级并提高系统的安全性与一致性。
115 8
升级指南:从Nacos 1.3.0 到 2.3.0,并兼容 Seata 的鉴权配置
下一篇
无影云桌面