SpringCloud2——Nacos配置管理
个人名片:
博主:酒徒ᝰ.
个人简介:沉醉在酒中,借着一股酒劲,去拼搏一个未来。
本篇励志:三人行,必有我师焉。
本项目基于B站黑马程序员Java《SpringCloud微服务技术栈》,SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 点击观看
目录
- 一、统一配置管理
- 1.启动nacos
- 2.nacos添加
- 3.IDEA 操作
- 二、热更新
- 方法一:在controller类中直接加入@RefreshScope注解
- 方法二:使用@ConfigurationProperties注解
- 三、多环境配置共享(简略)
- 1.创建共享nacos配置
- 2.设置共享配置
- 四、集群搭建
- 五、异常解决
一、统一配置管理
1.启动nacos
在nacos的bin目录下,鼠标在空白处右击,在终端打开。
输入指令:.\startupup.cmd -m standalone
2.nacos添加
按照下图进行添加即可。
3.IDEA 操作
- 引入依赖
nacos中配置的是userservice-dev.yaml,所有以下操作在user-service模块中进行。
<!--nacos配置管理依赖-->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
- bootstrap.yml文件
spring:application:name: userservice # 服务名称profiles:active: dev # 环境cloud:nacos:server-addr: localhost:8848 # nacos地址config:file-extension: yaml # 文件后缀名
- 属性注入
package cn.itcast.user.web;import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;@RestController
@RequestMapping("/user")
public class UserController {@Value("${pattern.dateformat}")private String dateformat;@GetMapping("/now")public String now(){return LocalDateTime.now().format(DateTimeFormatter.ofPattern(properties.getDateformat()));}/*省略...*/
}
4.测试
- 访问路径
http://localhost:8081/user/now
- 访问结果
二、热更新
此时,当我们修改nacos中的配置上,还需要重新启动服务才可以生效。
目的:我们需要修改nacos中的配置后,直接生效。
方法一:在controller类中直接加入@RefreshScope注解
import org.springframework.cloud.context.config.annotation.RefreshScope;@RefreshScope
public class UserController {//...省略
}
方法二:使用@ConfigurationProperties注解
1.创建一个新的模块config并在其中创建新的类PatternProperties。
2.PatternProperties类中写入代码
package cn.itcast.user.config;import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;@Data
@Component
@ConfigurationProperties(prefix = "pattern")
public class PatternProperties {private String dateformat;
}
3.修改Controller中的代码,前面创建PatternProperties类后,将nacos的配置移入新的类中,这里需要调用新的类来获取,便于热更新。
package cn.itcast.user.web;import cn.itcast.user.config.PatternProperties;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;@Slf4j
@RestController
@RequestMapping("/user")
public class UserController {@Autowiredprivate PatternProperties properties;@GetMapping("/now")public String now(){return LocalDateTime.now().format(DateTimeFormatter.ofPattern(properties.getDateformat()));}
}
三、多环境配置共享(简略)
优先级:[服务名]-[profile].[yaml] > [服务名].[yaml] > [本地配置]
1.创建共享nacos配置
此时,无论**[服务名]-[profile].[yaml]中的profile如何改变,[服务名].[yaml] **一定会加载。
- 修改profile
在需要修改的service上右键选择Edit
在Active profiles中输入修改后的profile值。
2.设置共享配置
1.方法一:extension-configs
spring:cloud:nacos:config:extension-configs:- extend.yaml
2.方法二:shared-configs
spring:cloud:nacos:config:shared-configs:- common.yaml
四、集群搭建
nacos集群搭建.md
五、异常解决
1.未启动nacos服务器,报Connection refused: connect异常,如下。
按照正确操作启动nacos即可。
SpringCloud2——Nacos配置管理相关推荐
- springboot nacos配置中心_SpringBoot开发案例之Nacos配置管理中心
前言 在开发过程中,通常我们会配置一些参数来实现某些功能,比如是否开启某项服务,告警邮件配置等等.一般会通过硬编码.配置文件或者数据库的形式实现. 那么问题来了,如何更加优雅的实现?欢迎来到 Naco ...
- Nacos配置管理模型
对于Nacos配置管理,通过Namespace.group.Data ID能够定位到一个配置集. 配置集(Data ID) 在系统中,一个配置文件通常就是一个配置集,一个配置集可以包含了系统的各种配置 ...
- Nacos配置管理-微服务配置拉取
从微服务拉取配置 微服务要拉取nacos中管理的配置,并且与本地的application.yml配置合并,才能完成项目启动. 但如果尚未读取application.yml,又如何得知nacos地址呢? ...
- Nacos配置管理-Nacos实现配置管理
Nacos配置管理 Nacos除了可以做注册中心,同样可以做配置管理来使用. 统一配置管理 当微服务部署的实例越来越多,达到数十.数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错.我们需要一种统 ...
- nacos配置中心使用_SpringBoot开发案例Nacos配置管理中心
前言 在开发过程中,通常我们会配置一些参数来实现某些功能,比如是否开启某项服务,告警邮件配置等等.一般会通过硬编码.配置文件或者数据库的形式实现. 那么问题来了,如何更加优雅的实现?欢迎来到 Naco ...
- java微服务Nacos配置管理
介绍Nacos配置管理 Nacos 提供了动态配置服务,能让我们可以实时进行服务应用的配置变更,让配置管理变得更加高效和快捷.它基于 key/value 方式存储应用配置和其他元数据信息,为分布式系统 ...
- Nacos 配置管理
一.什么是配置中心 1.什么是配置 应用程序在启动和运行的时候往往需要读取一些配置信息,配置基本上伴随着应用程序的整个生命周期,比如:数据库连接参数.启动参数等. 配置主要有以下几个特点: (1).配 ...
- Nacos(第一篇)_Springboot2.x+Nacos配置管理中心
前言 在开发过程中,我们通常会配置一些参数来实现某些功能,如:开启某些服务,邮箱通知,短信通知等:一般在这个时候,我们都是通过硬编码来实现.配置文件或数据库实现. Nacos 配置管理 Nacos 是 ...
- 【微服务】Nacos 配置管理模块
目录 一.Nacos 配置管理模块 1.配置⼀致性模型 2.Server 间的⼀致性协议 2.1.有 DB 模式(读写分离架构) 2.2.无 DB 模式 3.SDK 与 Server 的⼀致性协议 3 ...
最新文章
- python deque双端队列的神奇用法
- 全球顶级设计师云集天猫双11 超1000款时尚大牌新品首发
- 网页加速系列(五)、 网页加速之进阶上篇
- 一行代码完成js对象数组的深拷贝
- spring启动加载流程
- C++ new delete(二)
- Java big file debug - random access
- BeetleX使用bootstrap5开发SPA应用
- PHP mongodb运用,MongoDB在PHP下的应用学习笔记
- arch linux 入门,arch linux 从来就不是给新手入门用的
- SpringBoot+Redis+Cookies实现高并发的购物车
- GridView控件 Reapter控件 DataList控件 的区别和用法
- ddpush java_DDPush-任意门消息推送-开源推送服务器-推送-消息推送-信息推送-物联网推送...
- 学习笔记-B/S - Exploits
- 机器学习复盘(2):机器学习主要应用场景及典型案例
- 搞线上渠道推广实操这么些年了
- 2.12父子进程通过匿名管道通信
- K2 blackpearl 安装
- 利用模块化的可扩展参考设计瞄准ATCA和AMC市场机会
- R语言环境下Bioconductor安装2020-10-31