Nacos是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。使用Java编写,依赖Java环境
一、Docker容器中的Nacos
-
拉取镜像
docker pull nacos/nacos-server
-
启动镜像
docker run --env MODE=standalone --name nacos -d -p 8848:8848 nacos/nacos-server
-
登录Nacos
http://ip:8848/nacos/index.html
账号:nacos
密码:nacos
二、Windows中的Nacos
-
下载nacos-server
-
启动nacos-server
- 双击bin中的startup.cmd文件
- 访问http://localhost:8848/nacos/
- 使用默认的nacos/nacos进行登录
Java中Nacos的使用
注册中心
- 引入依赖
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>
- 配置文件
spring: cloud: nacos: discovery: # 连接注册中心进行注册 server-addr: 127.0.0.1:8848 config: server-addr: 127.0.0.1:8848 application: # 注册时的名字 name: 服务名
- 启动类添加注解
@EnableDiscoveryClient
配置中心
-
引入依赖
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
-
配置文件
<!--配置服务名--> spring.application.name=当前服务名 <!--Nacos Server 地址--> spring.cloud.nacos.config.server-addr=127.0.0.1:8848
-
创建服务端配置
优先于本地配置
-
动态刷新
在Controller类名上配上RefreshScope
注解
使用Value注解获取配置时可以动态刷新
名词解释
命名空间:
不同的命名空间下,可以存在相同的Group和Data ID,常用场景之一是不同环境的配置区分隔离,例如开发测试环境和生产环境的资源隔离等。
在bootstrap文件中修改要使用的命名空间
<!--不配即默认:public空间-->
spring.cloud.nacos.config.namespace=命名空间ID(一长串)
配置集:
一组相关或不相关的配置项的集合称为配置集
配置组:
不同的Group下可以有相同的Data ID,相互隔离
bootstrap文件
spring.cloud.nacos.config.group=组名
spring.cloud.nacos.config.data-id=id名
配置集ID: 类似文件名,Data ID
最终配置:
spring.application.name=服务名
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
# 服务自动加载 服务名.properties
# 默认加载默认空间和默认分组中的
# 指定了空间和组名后,会去取消默认,精确加载,若未找到,会去本地配置加载
spring.cloud.nacos.config.namespace=1eb9d3f3-ba68-43db-828b-784ac3e4859c
spring.cloud.nacos.config.group=组名
# extension-configs[0]:加载的第一个文件的配置
#获取当前命名空间下组名为test_group的data-id,并设置动态刷新
spring.cloud.nacos.config.extension-configs[0].data-id=data-id名
spring.cloud.nacos.config.extension-configs[0].group=DEFAULT_GROUP
spring.cloud.nacos.config.refresh-enabled=true
参考文档
Nacos注册中心:https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-discovery
nacos配置中心:https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-config
Nacos文档地址:https://nacos.io/zh-cn/docs/quick-start.html