首页 > 其他分享 >Nacos统一配置中心

Nacos统一配置中心

时间:2023-02-13 11:34:05浏览次数:46  
标签:spring 配置 nacos Nacos file config cloud 统一


使用Nacos作为配置中心

  • ​​1、简介​​
  • ​​2、开发微服务作为统一配置中心客户端将配置交给nacos进行管理​​
  • ​​2.1 创建项目并引入nacos配置中心依赖​​
  • ​​2.2 配置配置中心地址​​
  • ​​2.3 在Nacos中创建配置​​
  • ​​2.4 编写控制器测试配置读取情况​​
  • ​​2.5 启动项目并测试​​
  • ​​2.6 实现自动配置刷新(比consul+config+Spring Cloud Bus那个简单多了)​​
  • ​​3 nacos配置中心细节​​
  • ​​3.1 DataId​​
  • ​​3.2 微服务拉取配置的两种方式​​
  • ​​3.2.1 第一种(dataId=name+file-extension)​​
  • ​​3.2.2 第二种(dataId=prefix+env+file-extension)​​
  • ​​3.3 统一配置中心nacos三个重要概念​​
  • ​​3.3.1 命名空间:namespace​​
  • ​​3.3.2 组:group​​
  • ​​3.3.3 文件名:dataId​​

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>

Nacos统一配置中心_spring boot

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

Nacos统一配置中心_spring boot_02

2.3 在Nacos中创建配置

Nacos统一配置中心_服务注册_03

Nacos统一配置中心_配置管理_04


记住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;
}
}

Nacos统一配置中心_服务注册_05

2.5 启动项目并测试

Nacos统一配置中心_spring boot_06


Nacos统一配置中心_spring cloud alibaba_07

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

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

默认情况下nacos已经实现了自动配置刷新功能,如果需要刷新配置直接在控制器中加入​​@@RefreshScope ​​注解即可。

Nacos统一配置中心_nacos_08


我们现在nacos上修改配置

Nacos统一配置中心_配置管理_09


点击发布:

Nacos统一配置中心_服务注册_10


测试,可以看到配置已经自动刷新了,真的比config+consul+bus那个简单多了,阿里云好牛逼。

Nacos统一配置中心_服务注册_11

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

Nacos统一配置中心_服务注册_12

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

Nacos统一配置中心_spring cloud alibaba_13

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

3.3.1 命名空间:namespace

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

3.3.2 组:group

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

3.3.3 文件名:dataId

获取一个配置文件的唯一标识。


标签:spring,配置,nacos,Nacos,file,config,cloud,统一
From: https://blog.51cto.com/u_15961549/6053835

相关文章

  • 详解Nginx配置文件nginx.conf的每行含义
     Nginx配置文件的位置随着安装方式的不同,所在的位置也会不同,通过yum/dnf方式安装,那配置文件是在/etc/nginx/nginx.conf;通过手动编译安装的话可以指定配置文件位置,不指定的......
  • 三层交换机简单配置
    LSW1: sysvlanbatch23intvlanif2ipadd20.0.0.124intvlanif3ipadd30.0.0.124inte0/0/2plapdvlan2inte0/0/3plapdvlan3inte0/0/1pltptavlan2......
  • ubutu上配置iscsi
    参考https://www.a5idc.net/helpview_1091.htmlhttps://blog.51cto.com/cerana/5725318iSCSI代表Internet小型计算机系统接口是一种存储区域网络协议,可用于共享块设备......
  • Keepalived安装与配置
    Keepalived的安装过程keepalived的安装非常简单,以操作系统环境Centos7为例,建议通过yum方式直接安装:yuminstallkeepalived如果需要lvs功能,还需要安装ipvs模块:yumins......
  • HTTPS基础原理和配置 - 1
    近期又碰到了SSL相关的事情,就心血来潮开个新专题-《HTTPS基础原理和配置》本文是第一篇文章,主要介绍SSLTLS加密协议的相关内容。加密协议历史概要SSLTLS加密协......
  • Springboot项目配置SSL问题
    项目写一半想发布看一眼,是微信小程序的项目,一切都准备好了结果没有发布成功。第一次发布小程序,才知道微信小程序必须要https协议的域名才可以。发布小程序大致流程编......
  • log4j配置详解
    一、log4j.rootLogger=INFO,stdout,R●第一个参数为等级,后面可跟一到多个参数,为输出的位置;●例句的意思为将等级为INFO的日志信息使用stdout和R进行输出,stdout和R可以自......
  • Solon2 开发之容器,一、注入或手动获取配置
    约定resources/app.yml(或app.properties)#为应用配置文件配置样例track:name:xxxurl:http://a.a.adb1:jdbcUrl:"jdbc:mysql://..."username:......
  • 五.注解配置SpringMVC
    使用配置类和注解代替web.xml和SpringMVC配置文件的功能1、创建初始化类,代替web.xml在Servlet3.0环境中,容器会在类路径中查找实现javax.servlet.ServletContainerlnitialize......
  • 通过Nacos配置刷新进行RabbitMQ消费者在线启停
    前提公司在做一些金融相关业务,某些时候由于数据提供商定期维护或者特殊原因需要暂停某些服务的消费者。之前选用的消息队列技术栈是RabbitMQ,用于微服务之间的消息投递,对于......