码迷,mamicode.com
首页 > 编程语言 > 详细

SpringCloud(Alibaba版)Nacos配置中心

时间:2020-04-04 22:49:59      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:png   info   files   tps   static   地址   compile   view   art   

技术图片

一、Nacos Config简介

是什么?

  Nacos 是一个易于构建云原生应用的动态服务发现,配置管理和服务管理平台。使用 Spring Cloud Alibaba Nacos Config 可基于 Spring Cloud 的编程模型快速访问 Nacos 配置管理功能。

  • Nacos:Dynamic Naming and Configuration Service。

  • Nacos:其实就是 Eureka 服务注册中心 + Config 服务配置中心的组合。

 

二、基础配置

1)build.gradle项目依赖

创建gradle模块config-client-nacos并添加web、actuator监控、alibaba-nacos-discovery与alibaba-nacos-config依赖

dependencies {
   compile group: ‘org.springframework.boot‘, name: ‘spring-boot-starter-web‘

   compile group: ‘org.springframework.boot‘, name: ‘spring-boot-starter-actuator‘

   compile group: ‘com.alibaba.cloud‘, name: ‘spring-cloud-starter-alibaba-nacos-config‘, version: ‘2.1.0.RELEASE‘

   compile group: ‘com.alibaba.cloud‘, name: ‘spring-cloud-starter-alibaba-nacos-discovery‘, version: ‘2.1.0.RELEASE‘
}

2)为什么要配置两个配置文件?

  Nacos 同 Spring Cloud Config 在项目初始化时,要保证先从配置中心进行配置拉取,拉取配置后,才能保证项目的正常启动。Spring Boot 中配置文件的加载是存在优先级顺序的,bootstrap 优先级高于 application。

bootstrap.yaml:

技术图片
server:
  port: 7071
spring:
  application:
    name: config-client-nacos
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848 #指定Nacos服务注册中心地址
      config:
        server-addr: 127.0.0.1:8848 #指定Nacos服务配置中心地址
        file-extension: yaml #指定yaml格式的配置(原先GitHub上的配置文件)
View Code

application.yaml:

技术图片
spring:
  profiles:
    active: dev #表示激活开发环境
View Code

3)启动类ConfigClientNacosApplication.java

技术图片
package org.wesson.cloudalibaba.nacos;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@EnableDiscoveryClient
@SpringBootApplication
public class ConfigClientNacosApplication {

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

}
View Code

4)Controller

通过 Spring Cloud 原生注解 @RefreshScope 实现配置自动刷新功能:

技术图片
package org.wesson.cloudalibaba.nacos.controller;

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
@RefreshScope // 支持Nacos的动态刷新功能
public class ConfigNacosController {

    @Value("${config.info}")
    private String configInfo;

    @GetMapping("/getInfo")
    public String getConfigInfo() {
        return configInfo;
    }

}
View Code

5)在Nacos中添加配置信息

理论,Nacos 中的匹配规则

Nacos 中的 dataid 的组成格式及与 Spring Boot 配置文件中的匹配规则。官方文档链接:https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html

技术图片

公式:

${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}

用例:

config-client-nacos-dev.yaml

注意:严格按照官网公式,不要让 spring.profile.active 为空,不然会出现莫名其妙的问题。

实操,新建配置

启动 Nacos 服务后,找到配置管理下的配置列表,点击右侧加号:

技术图片

对应上面公式,设置Data ID,添加如下配置内容信息,之后点击发布:

技术图片

小总结

更直观的看法如下,这样一来,官网的 dataid 格式就看明确了吧!!!

技术图片

6)测试

启动前需要在 Nacos 客户端配置列表菜单下有对应的yaml配置文件

Step1:启动 Nacos 服务器

Step2:运行 config-client-nacos 启动类,端口为7071

Step3:调用接口查看配置信息,访问http://localhost:7071/getInfo,结果如下:

技术图片

成功获取 Nacos 客户端配置列表 config-client-nacos-dev.yaml 配置文件中的内容。

 

三、自带动态刷新配置

  不需要添加任何相关的 Bus 消息总线依赖,直接编辑修改 Nacos 客户端配置列表中的 yaml 配置文件版本发布即可:

技术图片

点击发布后,会有一个当前值与原始值的对比效果,然后确认发布:

技术图片

根本不需要重启任何服务以及原先发送的 POST 请求。再次调用查看配置的接口,就会发现配置成功实现动态刷新功能了:

技术图片

不得不说,阿里巴巴的 Nacos 技术还是还是非常成熟的,相当于完全代替了 Eureka、Config 与 Bus 三个组件。

SpringCloud(Alibaba版)Nacos配置中心

标签:png   info   files   tps   static   地址   compile   view   art   

原文地址:https://www.cnblogs.com/wessonshin/p/12634449.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!