论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
微服务之配置管理中心
微服务之配置管理中心
乌市泽哥
金牌会员
|
2022-8-19 12:10:54
|
显示全部楼层
|
阅读模式
楼主
主题
898
|
帖子
898
|
积分
2694
前言
在当微服务架构中,当实例越来越多,达到数十、数百时,去逐个修改每1个微服务的配置就会让人抓狂,而且很容易出错。
这时我们就需要1个可以集中保存微服务配置的配置中心;
一、配置中心概念
我们可以提取每1个微服务架构中实例的经常变化的配置项,集中保存到1个配置中心里;
当需要修改配置时直接在配置中心进行修改,配置中心发出变更通知,微服务去配置中心主动拉取更新的配置,实现配置的热更新。
二、Nacos配置中心
Nacos不仅可以作为微服务架构的服务注册中心,还能作微服务的集中配置管理中心;
1.添加Nacos配置
2.拉取Nacos配置
如果微服务想要拉取Nacos中管理的配置项与本地的application.yml配置项进行合并。
需要在SpringBoot项目中引入了1种新的配置文件bootstrap.yml配置文件;
bootstrap.yml会在application.yml之前被读取,而且其内容优先级高于application.yaml,不会被application.yaml覆盖;
2.1.引入Nacos客户端依赖
引入连接Nacos配置管理中心的客户端依赖;
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
复制代码
2.2.
添加bootstrap.yml
在user-service中添加一个bootstrap.yml文件,当项目启动时可以连接到Nacos配置管理中心;
${spring.application.name}+${spring.cloud.nacos.config.file-extension}作为配置文件的Data ID来读取Nacos的配置。
spring:
application:
name: user-service
cloud:
nacos:
config:
server-addr: localhost:8848 # nacos 配置中心地址
file-extension: yaml # 文件扩展名
复制代码
2.3.读取配置信息
读取从Nacos配置中心拉取到的配置信息;
3.配置热更新
当Nacos配置管理中心的配置项修改之后,不重启SpringBoot的前提下进行配置热更新;
3.1.局部更新
3.2.全局更新
3.2.1.实例类
@Configuration注解标注的类,实例化出来的是1个动态代理对象,不能被SpringMVC直接序列化成json数据响应给前端;
引入实体类
4.多环境配置文件
Nacos也支持了对同1服务进行不同环境的个性配置;
4.1.添加Nacos环境
4.2.配置SpringBoot
通过配置文件指定SpringBoot项目启动时,拉取哪1套环境配置?
Nacos配置中心的客户端会以bootstrap.yml中配置name+active+file-extension作为键,去Nacos配置拉取配置项;
4.3.配置文件的优先级
当Nacos、微服务本地的配置文件,同时存在且属性相时,优先级有高低之分:
5.配置环境隔离
当微服务的模块很多时,所有微服务的配置都堆放在一起,看起来会十分臃肿,不易区分和管理。
5.1.新增命名空间
Nameapace其实一个配置环境的集合,接下来创建2个环境;
5.2.创建配置文件
在创建的命名空间中创建相同名称的配置文件
public命名空间
dev命名空间
test命名空间
5.3.读取命名空间中的配置信息
修改user-service服务的配置文件bootstrap.yml 读取指定的namespace 、group、data id
spring:
application:
name: user-service
# profiles:
# active: dev
cloud:
nacos:
config:
server-addr: localhost:8848 # nacos 配置中心地址
file-extension: yaml # 文件扩展名
namespace: 13c7a5e5-8099-4318-b2f8-9992b23ba454 #指定namespace的id
group: DEFAULT_GROUP # 指定组名
复制代码
6.Nacos集群
Nacos作为服务注册中心还作为服务配置中心,如果Nacos宕机整个微服务架构就会出现服务雪崩;
在生产环境中为了确保Nacos服务的高可用,我们会Nacos集群,Nacos集群共享1台数据库确保服务注册中心还作为服务配置中心的数据共享;
参考
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
乌市泽哥
金牌会员
这个人很懒什么都没写!
楼主热帖
是什么让.NET7的Min和Max方法性能暴增 ...
@RequestParam,@PathVariable两个注解 ...
2019 第十届蓝桥杯大赛软件赛决赛,国 ...
SqlServer远程连接
7 行代码搞崩溃 B 站,原因令人唏嘘! ...
聚焦企业开放OpenAPI痛难点,华为云API ...
想入行SAP咨询,最具性价比的方式 ...
活动 | 塑造软件新生态 赋能发展新变革 ...
CentOS7 安装 Redis 7.0.2
[WPF] 使用 HandyControl 的 CirclePan ...
标签云
存储
挺好的
服务器
快速回复
返回顶部
返回列表