长春长春网站建设/广告联盟大全
一、为什么要使用Nacos配置中心?
我们在采用集群部署时 , 如果配置文件需要改变 , 那么传统方法中我们需要将每一台服务器中 的配置文件进行修改 , 可维护性极差 , 修改强度太大。
因此我们需要每一台服务器都去读取某一个配置文件 , 需要修改时也可以只是修改一个配置文件便可做到所有服务器同时修改。
首先了解下SpringBoot中配置文件的执行顺序:
下面就来学习使用Nacos的配置中心来实现配置文件的共用
二、Nacos配置中心使用
前面已经安装好Nacos了,并且已经注册了四个服务,这里以credit-service演示Nacos动态配置文件的功能:
2.1、order-service导入Nacos配置中心依赖
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency>
2.2、新建一个bootstrap.yml
spring:application:name: credit-service #指定项目的名字cloud:nacos:discovery: #用于服务发现server-addr: 127.0.0.1:8848 #nacos服务注册中心地址和端口config: #指定配置中心server-addr: 127.0.0.1:8848 #nacos配置中心地址和端口file-extension: yaml #指定服务配置格式,严格要求,下面会说到有几种格式
2.3、在Nacos管理页面上新建配置
Data ID规范(严格要求,不然会匹配不了):Nacos配置是以data id为单位进行使用的,基本上一个服务的一个配置文件就对应一个data id。
在Nacos Spring Cloud中,data id
的完整格式如下:
${prefix}-${spring.profile.active}.${file-extension}
-
prefix
默认为spring.application.name
的值,也可以通过配置项spring.cloud.nacos.config.prefix
来配置。 -
spring.profile.active
即为当前环境对应的profile。注意:当spring.profile.active
为空时,对应的连接符-
也将不存在,dataId的拼接格式变成${prefix}.${file-extension}
-
file-extension
为配置内容的数据格式,可以通过配置项为spring.cloud.nacos.config.file-extension
来配置。目前只支持properties
和yaml
类型。
//因为上面我没有配置${spring.profiles.active},所以忽略了最终拼接出来的就是:credit-service.yaml
file-extension: 刚刚上面说了有几种格式,就是按照上图的配置格式来定义的一种有6种(一定要按严格要求来配置,不然匹配不了,启动时会报错)
2.4、测试Nacos动态配置中心功能
a、新建一个测试控制层来访问
package com.hs.credit.controller;import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RefreshScope //Nacos配置热更新
public class CreditController {@Value("${info.name}")private String name;@RequestMapping(value = "/addCredit")public String addCredit(){System.out.println(name);return "Hello,addCredit!";}
b、启动后,访问 http://127.0.0.1:9005/addCredit
输出内容: hello
@RefreshScope 以上控制层添加了配置热更新的注解,所以我们可以修改以下配置文件重新发布看看
c、把name修改为hi
测试:此时服务不需要重启访问 http://127.0.0.1:9005/addCredit
输出内容: hi
//Nacos动态配置文件修改成功