spring cloud alibaba - Nacos 作为配置中心基础使用
1.简要说明
Nacos提供了作为配置中心的功能,只需要在Nacos的控制台页面添加配置,然后在项目中配置相应的"路径"就好。
主要分为几个步骤:
在Nacos控制台添加配置
在项目引入依赖
配置Nacos上的配置的"路径"
2.Nacos控制台配置说明
配置管理-配置列表,可以看见我们的配置
下图是我添加的一个配置
Nacos的配置的完整名称路径是:命名空间+组Group名+Data Id,类似于项目+包名+类名,这样子可以对配置文件进行较好的分类管理。
命名空间:默认存在一个命名空间public,也可以自己创建
组:在新建配置的时候设置,名字自己随意取
data id:在新建配置的时候设置,data id的值和我们项目中的配置有关,这个后面讲
3.简单实例
3.1创建模块
3.2依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency> <dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
完整
<dependencies> <dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency> <dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency> <dependency>
<groupId>com.atguigu.springcloud</groupId>
<artifactId>cloud-api-commons</artifactId>
<version>${project.version}</version>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency> <dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency> <dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.62</version>
</dependency>
</dependencies>
3.3配置文件
application.yml
spring:
profiles:
active: dev
bootstrap.yml
server:
port: 3377 spring:
application:
name: nacos-config-client #将会作为注册到注册中心的服务名称
cloud:
nacos:
discovery:
server-addr: localhost:8848 #作为注册中心的Nacos的地址
config:
server-addr: localhost:8848 #作为配置中心Nacos的地址
file-extension: yaml #指定yaml格式的配置
为什么这里需要两个配置文件呢,这个data id有关
现在,我们看Data id是怎么形成的
Data id的格式如下 ${prefix}-${spring.profiles.active}.${file-extension}
${prefix}:默认是spring.application.name的值,也可以通过配置项 spring.cloud.nacos.config.prefix
来配置
${spring.profiles.active} 即为当前环境对应的 profile,注意:当 spring.profiles.active
为空时,对应的连接符 -
也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension},最好不要少,这也就是上面弄了两个配置文件的原因
${file-extension}为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension
来配置。目前只支持 properties
和 yaml
类型。
按照我们的配置,Data Id 也就是 nacos-config-client-dev.yaml
上面的配置,也就是去找地址为 localhost:8848的Nacos,由于我们没有配置命名空间和组,所以找的是默认的命名空间public和默认组DEFAULT_GROUP,Data id是nacos-config-client-dev.yaml的配置
3.4主启动类
package com.atguigu.springcloud; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; /**
* @Classname NacosConfigClientMain3377
* @Description TODO
* @Date 2021/6/21 0021 下午 3:38
* @Created by jcc
*/
@SpringBootApplication
@EnableDiscoveryClient
public class NacosConfigClientMain3377 {
public static void main(String[] args) {
SpringApplication.run(NacosConfigClientMain3377.class,args);
}
}
3.5业务类
package com.atguigu.springcloud.alibaba.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 //动态刷新 通过这个注解实现配置的自动刷新,但我们修改配置了,会自动刷新
public class ConfigClientController
{
@Value("${config.info}")
private String configInfo; //读取我们在Nacos上的配置的内容 config.info @GetMapping("/config/info")
public String getConfigInfo() {
return configInfo;
}
}
3.6.在Nacos控制台创建配置
Data id的值一定要对应上面项目中的配置形成的Data id的值
Group采用默认的
配置格式:选择YAML
配置内容:config.info: 帅呀
3.7启动项目
访问http://localhost:3377/config/info,读取到了配置内容
修改配置内容
再次访问
发现自动更新了配置内容
4.自定义命名空间和自定义组
4.1创建命名空间
命名空间-新建命名空间
id自动生成就好
创建成功后
4.2在mysp命名空间下创建配置
选择命名空间为mysp,点击+新增配置
Data id还是之前的不变
Group:MY_GROUP (自定义的组的名称)
配置格式:YAML
配置内容:mysp---MY_GROUP_帅呀
4.3修改项目的配置文件
server:
port: 3377 spring:
application:
name: nacos-config-client #将会作为注册到注册中心的服务名称
cloud:
nacos:
discovery:
server-addr: localhost:8848 #配置Nacos地址
config:
server-addr: localhost:8848 #配置中心地址
file-extension: yaml #指定yaml格式的配置 也就是去配置中心3348去找yml配置文件,而application的配置active: dev,有指定了找名字为dev的
namespace: 55b6e10a-d590-4260-83fc-60db57b47f3e
group: MY_GROUP
添加了两个配置内容:
namespace: 55b6e10a-d590-4260-83fc-60db57b47f3e 命名空间的id
group: MY_GROUP 组名
这里去找的是id为55b6e10a-d590-4260-83fc-60db57b47f3e的命名空间下,组名为MY_GROUP,data id为nacos-config-client-dev.yaml的配置
4.4重启项目
访问http://localhost:3377/config/info
spring cloud alibaba - Nacos 作为配置中心基础使用的更多相关文章
- Spring Cloud Alibaba Nacos 的 2 种健康检查机制!
Spring Cloud Alibaba Nacos 作为注册中心不止提供了服务注册和服务发现功能,它还提供了服务可用性监测的机制.有了此机制之后,Nacos 才能感知服务的健康状态,从而为服务调用者 ...
- Spring Cloud Alibaba | Nacos服务中心初探
目录 Spring Cloud Alibaba | Nacos服务中心初探 1. 什么是Nacos? 1.1 Nacos 1.0 1.2 Nacos 2.0 2. Nacos 架构及概念 2.1 服务 ...
- Spring Cloud Alibaba | Nacos服务注册与发现
目录 Spring Cloud Alibaba | Nacos服务注册与发现 1. 服务提供者 1.1 pom.xml项目依赖 1.2 配置文件application.yml 1.3 启动类Produ ...
- Spring Cloud Alibaba | Nacos配置管理
目录 Spring Cloud Alibaba | Nacos配置管理 1. pom.xml 项目依赖 2. 在 bootstrap.properties 中配置 Nacos server 的地址和应 ...
- Spring Cloud Alibaba | Nacos集群部署
目录 Spring Cloud Alibaba | Nacos集群部署 1. Nacos支持三种部署模式 2. 集群模式下部署Nacos 2.1 架构图 2.2 下载源码或者安装包 2.3 配置集群配 ...
- 0.9.0.RELEASE版本的spring cloud alibaba nacos实例
简而言之,nacos与eureka的不同之处有三:后台老板.部署方式.功能.nacos是阿里的,eureka是奈飞的:nacos有自己的安装包,需要独立部署,eureka仅作为一个服务组件,引入jar ...
- Spring Cloud Alibaba+Nacos搭建微服务架构
1. Spring Cloud Alibaba 简介 Spring Cloud Alibaba是阿里巴巴为分布式应用提供的一站式解决方案,能够更方便快捷地搭建分布式平台,nacos拥有着替换eu ...
- Spring Cloud Alibaba Nacos Config 的使用
Spring Cloud Alibaba Nacos Config 的使用 一.需求 二.实现功能 1.加载 product-provider-dev.yaml 配置文件 2.实现配置的自动刷新 3. ...
- Spring Cloud Alibaba Nacos 服务注册与发现功能实现!
Nacos 是 Spring Cloud Alibaba 中一个重要的组成部分,它提供了两个重要的功能:服务注册与发现和统一的配置中心功能. 服务注册与发现功能解决了微服务集群中,调用者和服务提供者连 ...
- Spring Cloud 入门教程 - 搭建配置中心服务
简介 Spring Cloud 提供了一个部署微服务的平台,包括了微服务中常见的组件:配置中心服务, API网关,断路器,服务注册与发现,分布式追溯,OAuth2,消费者驱动合约等.我们不必先知道每个 ...
随机推荐
- 【DL论文精读笔记】 深度压缩
深度压缩 DEEP COMPRESSION: COMPRESSING DEEP NEURAL NETWORKS WITH PRUNING, TRAINED QUANTIZATION AND HUFFM ...
- PLSql在Oracle中创建表空间
create tablespace db_test --表空间名 datafile 'D:\oracle\product\11.2.0\dbhome_1\oradata\orcl\test.dbf' ...
- Kubernetes专栏 | 安装部署(一)
--随着云原生概念的普及,许多企业的业务纷纷上云,为了追求可靠性,稳定性,和弹性伸缩,提升资源利用率等需求.Kubernetes这个谷歌开源的容器编排平台已日益流行,被大家熟知和使用. 通常来说,Ku ...
- K8s安装乐维5.0应用部署文档
乐维产品包具体打包为4个镜像包,分别为:mysql5.7.36.tar.zabbix_server.tar.itops_v1_4_x86_64.tar.bpm0.1.tar,对应的配置文件分别为:da ...
- vulnhub靶场之HACK ME PLEASE
准备: 攻击机:虚拟机kali.本机win10. 靶机:HACK ME PLEASE,下载地址:https://download.vulnhub.com/hackmeplease/Hack_Me_Pl ...
- Kafka教程(三):原理及存储
一.思维导图 1.实时更新连接 https://www.mubucm.com/doc/1GRE2U7qYuj 2.思维导图图片 二.具体内容 8.系统架构 架构推导 拓扑结构 多对多 ...
- 在windows下导入react项目并且打包编译后部署到nginx上
在windows下导入react项目并且打包编译后部署到nginx上 一.安装npm 二.创建react项目 三.安装nginx 四.总结 最近接手了公司的一个django项目,这是应该前后端分离的项 ...
- v-if v-for同时使用 解决eslint报错问题
<template v-for="sec in item.goods"> <div v-if="item.showDetail" class= ...
- 如何取消磁盘的BitLocker加密
步骤1:打开开始[win]菜单,点击齿轮图标,打开[设置] 步骤2:在Windows设置视窗中点击[更新和安全] 步骤3:点击左侧[设备加密],点击视窗右侧[关闭] 步骤4:将提示是否需要关闭设备加密 ...
- Jenkins&&gitlab2
Jenkins slave 添加jenkins slave节点: jenkins slave节点创建工作目录与基本环境配置,如果jenkins slave节点需要clone代码和执行java 代码编 ...