1.为什么使用Nacos 配置文件中心


1.如果在生产情况下,修改了配置文件,项目需要下架,重新打包,重新发布。这在单机模式下影响不会太大,但如果过在一个集群项目中就会照成很大的影响,需要停掉多个项目。因此,Nacos配置文件中心就应运而生。

2.该配置文件会统一存储项目的核心配置文件,而不用把配置文件分别存在每台集群中的机器上,这样极大的方便了项目后期的修改维护。

3.该配置文件中心的修改,微服务群里的项目都会自动感知到,并实时的跟随配置文件中心的修改而修改。通过@RefreshScope注解就可以实现配置文件修改后,其他项目自动感知。

4.配置文件中心一般都是存储在仓库中,比如mysql仓库、git仓库等。因此,配置文件中心里面的文件是持久化的即使,nacos关闭后再打开这些文件仍然存在。

2.Nacos 配置文件中心实例

1.首先访问localhsot8848/nacos路径,进入nacos控制台,创建一个配置中心文件,如下所示

nacos配置单机redis nacos配置文件详解_开发语言

输入配置文件id(可以自定义,一般与项目名称相同),自动生成默认分组,选择YAML格式,也就是yml结尾的格式 。

nacos配置单机redis nacos配置文件详解_nacos配置单机redis_02

点击发布,查看发布后的配置文件中心信息

nacos配置单机redis nacos配置文件详解_spring_03

 2.创建一个nacos-config-a实例的model

nacos配置单机redis nacos配置文件详解_配置文件_04

 

nacos配置单机redis nacos配置文件详解_nacos配置单机redis_05

3.修改pom.xml文件,使其版本对应

nacos配置单机redis nacos配置文件详解_配置文件_06

添加lombok的依赖

nacos配置单机redis nacos配置文件详解_java_07

 

 4.Student类

nacos配置单机redis nacos配置文件详解_spring_08

TestController类

package com.it.controller;

import com.it.domain.Student;
import org.springframework.beans.factory.annotation.Autowired;
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;

@RestController

public class TestController {

    @Autowired
    public Student student;

    @GetMapping("info")
    public String StudentInfo(){
        return student.getName()+":"+student.getAge()+":"+student.getAddress();
    }

}

5.bootstarp.yml配置文件

nacos配置单机redis nacos配置文件详解_开发语言_09

6.运行主函数启动类,启动项目

nacos配置单机redis nacos配置文件详解_java_10

nacos配置单机redis nacos配置文件详解_配置文件_11

7.测试项目,可以正常访问

nacos配置单机redis nacos配置文件详解_spring_12

8.现在通过nacos控制台修改配置文件中的内容,再次访问项目,测试是否能够实时的同步修改后的文件

nacos配置单机redis nacos配置文件详解_java_13

 

nacos配置单机redis nacos配置文件详解_nacos配置单机redis_14

可以正常的实时同步配置文件内容

nacos配置单机redis nacos配置文件详解_配置文件_15

 

 9.现在进入数据库中查看一下nacos配置文件中心同步到mysql数据库中的文件都有哪些

nacos配置单机redis nacos配置文件详解_spring_16

nacos配置单机redis nacos配置文件详解_java_17

 

nacos配置单机redis nacos配置文件详解_java_18

 

虽然数据库中可以直接显示出这些信息,但是修改这些信息只能通过nacos控制台操作,不能直接修改mysql数据库