一. 前言
1. nacos相关文章
- Nacos配置中心使用 (本文)
- Nacos注册中心使用 (待出)
- Nacos配置中心源码浅析
- Nacos注册中心源码浅析 (待出)
2. 说明
- 本文业务项目为SpringBoot项目, 采用spring-boot-starter-web版本为2.2.5.RELEASE
- 本文spring-cloud-starter-alibaba-nacos-config采用版本为2.2.5.RELEASE
- 特别注意: 使用该依赖的情况下, 必须使用bootstrap.properties或bootstrap.yml配置nacos信息 , 否则不生效
- 本文nacos服务端不使用数据库的表存储
- 如有疑问, 请查看官方文档: https://nacos.io/zh-cn/docs/what-is-nacos.html
- nacos源码: https://github.com/alibaba/nacos/releases
二. 搭建nacos服务端
1. 前提
1.1 项目所在环境需先安装jdk
- Windows环境安装jdk: https://blog.csdn.net/weixin_42109012/article/details/94388518
- Linux环境安装jdk: https://blog.csdn.net/qq_47249564/article/details/126283675
1.2 获取nacos服务端安装包
到 nacos 的 github 网站中下载, 下载链接:https://github.com/alibaba/nacos/releases
如上图, .zip 包用于 Windows系统,.tar.gz 包用于 Linux 系统
2. Windows环境部署
2.1 下载nacos-server-2.2.2.zip解压
目录说明:
- bin: 脚本命令
- conf: 配置文件
- target: 存放nacos-server.jar
注: nacos服务端默认端口为8848, 启动时端口冲突可到/conf/application.properties中修改端口
2.2 修改集群模式为单机(非必须)
集群模式下启动会报错, 我们使用单机模式进行测试
使用编辑器打开/bin/startup.cmd文件, 修改MODE值为 standalone
2.3 启动项目
- 若修改了startup.cmd中的mode为standalone, 则直接双击startup.cmd即可启动项目
- 若未修改startup.cmd文件, 则可在bin目录下打开cmd控制台, 执行
startup.cmd -m standalone
启动后效果
如图所以表示启动成功. 其中会打印出nacos控制台访问地址. 标准访问地址如下
http://localhost:8848/nacos/index.html
注:
- 若使用数据库或nacos安装包需要登录认证, 默认的登录账号密码为(nacos/nacos)
3. linux环境部署
3.1 下载nacos-server-2.2.2.tar.gz解压
将nacos包传到 /usr/local/下解压
cd /usr/local
zxvf nacos-server-2.2.2.tar.gz
3.2 修改集群模式为单机(非必须)
编辑/bin/startup.sh文件, 修改MODE值为 standalone
3.3 启动项目
- 若修改了startup.sh中的mode为standalone
sh startup.sh
- 若未修改startup.sh中的mode
sh /usr/local/nacos/bin/startup.sh -m standalone
4. 控制台页面
三. 创建业务项目及配置
1. 创建业务SpringBoot业务项目
创建项目nacos-config-study, 项目结构如下
注: 配置文件为bootstrap.yml (或bootstrap.properties), 因为springboot的nacos客户端 (spring-cloud-starter-alibaba-nacos-config)初始化会 先以 application.yml和application.properties, 故不能使用application的配置文件来指定nacos的属性
2. 添加spring-cloud-starter-alibaba-nacos-config依赖和spring-boot-starter-web依赖
添加依赖如下
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.5.RELEASE</version>
<relativePath/>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- nacos客户端依赖包(配置中心) -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.2.5.RELEASE</version>
</dependency>
</dependencies>
3. 准备测试代码
3.1 新增测试controller
package com.chenlongji.nacosconfigstudy;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author clj
*/
@RestController
@RefreshScope
public class ConfigTestController {
@Value("${user.name:admin}")
private String name;
@Value("${user.age:18}")
private Integer age;
// 接口访问地址: http://localhost:8118/getNacosConfig
@GetMapping("/getNacosConfig")
public String getNacosConfig (){
return "nacosConfig: name=" + name + ", age=" + age;
}
}
注:
- @Value为spring原生的注解, 需要有默认值, 避免项目启动报错
- @RefreshScope为spring-cloud的注解, 用于自动刷新配置的值
3.2 修改配置文件bootstrap.properties
# 端口
server.port=8118
# 应用名
spring.application.name=nacos-config-study
# 指定nacos服务端地址
spring.cloud.nacos.config.server-addr=localhost:8848
四. 添加配置文件测试
在nacos控制台添加nacos-config-study.properties配置文件
文件名说明:
- 在 Nacos Spring Cloud 中,dataId 的完整格式如下:
${prefix}-${spring.profiles.active}.${file-extension}
a. prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
拓展: (旧版本)若使用spring.application.name时环境变量中还有spring.application.group的值, 则prefix为{spring.application.group}:{spring.application.name}
b. spring.profiles.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 $ {prefix}.${file-extension}
c. file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。如 yml. 注意: 配置文件后缀(在bootstrap.yml或在bootstrap.properties配置文件中才会生效)
启动nacos-config-study项目访问
启动项目, 访问地址: http://localhost:8118/getNacosConfig
五. 更多
1. 命名空间使用
项目指定命名空间
切记设置了 spring.profiles.active时, dataId需要带有命名空间的名字
2. 多配置文件/公共配置文件使用
使用详情: Nacos配置中心用法详细介绍-4、共享配置