Nacos 官网
https://nacos.io/zh-cn/docs/what-is-nacos.html

配置中心只是nacos的一个功能,这里仅仅只是介绍 springboot + nacos配置中心。其他功能见官网介绍。

预备环境

Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用:

64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。
64 bit JDK 1.8+
Maven 3.2.x+

(本文操作环境 win7 64)

Nacos 安装&启动

安装包下载地址 https://github.com/alibaba/nacos/releases

安装
解压即可

windows 下 启动
双击 startup.cmd 或 在cmd命令行 执行 startup.cmd

Linux/Unix/Mac 下启动 (standalone 单机)
startup.sh -m standalone

关闭Nacos
运行相应的 shutdown 脚本

注意: nacos 默认端口 8848(珠穆朗玛峰的高度) ,可以设置端口
编辑 nacos-server-1.1.4\nacos\conf 下的 application.properties 文件 添加

server.port=xxxx

或者

编辑nacos-server-1.1.4\nacos\bin下的startup.cmd文件 添加

set "JAVA_OPT=%JAVA_OPT% --server.port=xxxx

windows 下 双击 startup.cmd 启动 Nacos 1.1.4 如下:
在这里插入图片描述

nacos 控制台

登录 nacos 控制台

浏览器输入 http://127.0.0.1:8848/nacos/index.htm
(注:我的谷歌浏览器好像打不开,可能版本低了,火狐、360极速浏览器打开正常)

在这里插入图片描述

默认登录的账号密码都是 nacos , 登录成功后 如下:
在这里插入图片描述

添加一个配置

在这里插入图片描述
dataId 为 example ,组为 DEFAULT_GROUP ,配置内容为 test=123456
在这里插入图片描述
在这里插入图片描述
注意:上面配置操作是通过控制台 UI 完成的,nacos 还提供了api访问操作的方式,详细见官方文档。

springboot 集成 nacos 动态配置

springboot nacos 依赖

<dependency>
    <groupId>com.alibaba.boot</groupId>
    <artifactId>nacos-config-spring-boot-starter</artifactId>
    <version>0.2.3</version>
</dependency>

注意: 如果springboot版本是2.x 那么nacos-config-spring-boot-starter 对应版本号0.2.x
如果springboot版本是1.x 那么nacos-config-spring-boot-starter 对应版本号0.1.x

application.properties 中配置 Nacos server 的地址

nacos.config.server-addr=127.0.0.1:8848

启动类 使用 @NacosPropertySource 加载 dataId 为 example 的配置源,并开启自动更新

注意:dataId = “example”,groupId = “DEFAULT_GROUP” 确定使用 nacos 中的哪个配置
autoRefreshed 表示是否自动更新

import com.alibaba.nacos.spring.context.annotation.config.NacosPropertySource;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@NacosPropertySource(dataId = "example",groupId = "DEFAULT_GROUP",autoRefreshed = true)
public class NacosConfigDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(NacosConfigDemoApplication.class, args);
    }

}

通过 Nacos 的 @NacosValue 注解设置属性值

import com.alibaba.nacos.api.config.annotation.NacosValue;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author:
 * @create: 2019-12-17 17:32
 **/
@RestController
public class TestController {

    //获取nacos指定配置中test的内容,如果没test,则取默认值this is a default value
    @NacosValue(value = "${test:this is a default value}", autoRefreshed = true)
    private String test;

    @RequestMapping("/get")
    public String get() {
        return test;
    }
}

测试

程序正常启动后,浏览器输入 http://127.0.0.1:8080/get
123456 的内容 是来自 nacos 控制台设置的
在这里插入图片描述

注意
nacos 配置优先级 高于 应用本身的 application.properties 配置。如果nacos 和 应用本身配置 都有test ,那么应用本身的 test 配置 会覆盖 nacos 的配置

demo 源码

链接:https://pan.baidu.com/s/12Oh3vfJjwt45-NxsEwS48w
提取码:uet7

注意: 启动应用前 先安装 启动 nacos ,然后 添加配置 (配置的 dataId 为 example , groupId 为 DEFAULT_GROUP )

更多推荐