spring cloud config 配置中心

/(ㄒoㄒ)/~~ 还有好多要学鴨

cloud config

    • 分布式面临的系统配置问题,如何解决
    • 分为服务端配置与客户端配置
    • 客户端不能自动更新git上的配置

分布式面临的系统配置问题,如何解决

1. 分布式系统面临的配置问题
微服务意味着要将单体应用中的业务拆分成一个个子服务, 每个服务的粒度相对较小,
因此系统中会出现大量的服务。
由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、 
动态的配置管理设施是必不可少的。
SpringCloud提供了ConfigServer来解决这个问题,
我们每一个微服务自 己带着一个application.yml, . 上百个配置文件的管理...
/(ToT)/~~2. SpringCloud Config为微服务架构中的微服务提供集中化的外部配置支持,
配置服务器为各个不同微服务应用的所有环境提供了一个中心化的外部配置。3. SpringCloud Config分为服务端和客户端两部分。
服务端也称为分布式配置中心,它是一 个独立的微服务应用,
来连接配置服务器并为客户端提供获取配置信息,加密/解密信息等访问接口。客户端则是通过指定的配置中心来管理应用资源,
以及与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息。配置服
务器默认采用git来存储配置信息,这样就有助于对环境配置进行版本管理,
并可以通过git客户端工具来方便的管理和访问配置内容。

架构图:config server(微服务) 从git库获取配置信息,客户端来取。
在这里插入图片描述


能干嘛:

1. 不同环境不同配置,动态化的配置更新,分环境部署比如dev/test/prod/beta/release
2. 运行期间动态调整配置,不再需要在每个服务部署的机器上编写配置文件,服务会向配置中心统一拉取配置自己的信息
3. 当配置发生变动时,服务不需要重启即可感知到配置的变化并应用新的配置
4. 将配置信息以REST接口的形式暴露 (postman、curl访问刷新均可....)

推荐与GitHub使用,更香。

https://cloud.spring.io/spring-cloud-static/spring-cloud-config/2.2.1.RELEASE/reference/html/

分为服务端配置与客户端配置

服务端用来获取git仓库上的配置信息,客户端读取服务端的配置信息。
将配置信息用一个微服务抽出来。

code in my github repo.. fork, star or clone, you determine it..

客户端不能自动更新git上的配置

需要注意的问题。

1. 当git上的配置信息更新后,配置中心服务端能及时获取到配置信息,客户端也能。
更新git,客户端获取不到配置信息,需要重启client重新获取。2. 客户端新增@RefreshScope注解,启动服务端和客户端可以获取到配置信息,
但是更新git上的配置后,客户端还是获取不到配置信息。3. 需要发送post请求 curl -X POST "http://localhost:clientPort/actuator/refresh" 重新获取配置信息。4. 第三步的操作麻烦,每次更新配置,我都需要发送请求,我有100台微服务,
我得找到对应得100个端口... 手动refresh, hhh..

如何解决微服务收到配置信息呢,而且自动化的收到消息,定制化的通知到对应的机器。
spring cloud bus消息总线来解决。集成消息中间件帮我发消息。来进行配置的变更。

再说.jpg。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420441.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端学习(1289):nodejs模块化的开发规范

demo02.js const add (n1, n2) > n1 n2exports.add add; demo03.js const a require(./demo02.js); console.log(a); 运行结果

spring cloud bus消息总线

解决的痛点: 当git仓库的配置更新后, cloud config 客户端不能获取到配置信息的问题, 需要手动发送请求,刷新配置。 可以参照 spring cloud config cloud busbus消息总线使用rabbitMQ推送消息原理架构实现使用curl命令刷新客户端的配置bus bus配合conf…

前端学习(1290):nodejs模块化的开发导出另一种方式

demo04.js const greeting _name > hello ${_name};module.exports.greeting greeting; demo05.js const a require(./demo04.js); console.log(a); console.log(a.greeting(geyao)); 运行结果 demo04.js const greeting _name > hello ${_name}; const x 100;…

SpringCloud Stream消息驱动

为啥有这个技术??? 1. 这个stream是操作消息队列的,简化,学习消息队列的成本降低。 2. 可操作rabbitMQ兔子message queue,kafaka,可理解为jdbc可操作oracle, mysql.. 3. spring家的技术学就完了…

前端学习(1291):nodejs的系统模块文件读取操作

//通过模块对模块进行引入 const fs require(fs); //读取文件 fs.readFile(./demo01.js, utf8, (err, doc) > {console.log(err);console.log(doc); }) 运行结果

解决MySQL忘记root密码

网上有很多关于忘记MySQL root密码的一些文章,里面都有写怎么去解决,但有时觉得写得太恶心,要么一字不漏的抄别人的,要么就说得不清不楚,好了,不吐槽了,以下是解决的整个过程。 首先我们要知道忘…

前端学习(1292):文件写入操作

const fs require(fs);fs.writeFile(./demo.txt, 即将要写入的内容, err > {if (err ! null) {console.log(err);return;}console.log(文件内容写入成功); }) 运行结果

前端学习(1293):系统模块path路径操作

//导入path模块 const path require(path); //路径拼接 const finaPath path.join(public, uploads, avater); console.log(finaPath); 运行结果

前端学习(1294):相对路径和绝对路径

const fs require(fs); const path require(path); console.log(__dirname); console.log(path.join(__dirname, ./demo01.js)); fs.readFile(path.join(__dirname, ./demo01.js), utf8, (err, doc) > {console.log(err);console.log(doc); }) 运行结果

nacos服务配置中心演示

config centerNacos作为配置中心-基础配置Nacos作为配置中心-分类配置nacos将配置持久化到mysql新型技术&#xff0c;替代spring config center & bus Nacos作为配置中心-基础配置 ⑴ module cloudalibaba-config-nacos-client3377 (2) pom <dependencies><!--n…

前端学习(1296):第三方模块nodemon

修改保存重新执行 如何断开ctrlc

note.. redis五大数据类型

redis 五大数据类型使用nosql介绍&#xff0c;由来什么是nosql阿里巴巴的架构nosql 四大分类redis入门概述redis 安装 &#xff08;docker&#xff09;基础的知识redis五大数据类型Redis-KeyStringList (列表)Set &#xff08;集合&#xff09;Hash(哈希)Zset 有序集合nosql介绍…

前端学习(1298):gulp使用

第一步安装 第二步建立文件夹 第三部 src放源代码 第四步 输入代码 执行

Sentinel 分布式系统的流量防卫兵

sentinelsentinel base服务编写关键名词解释sentinel base 官网&#xff1a; https://github.com/alibaba/Sentinel https://github.com/alibaba/Sentinel/wiki/%E4%BB%8B%E7%BB%8D 是什么&#xff1f; 是一款优秀的限流&#xff0c;降级&#xff0c;熔断的框架。 Sentinel …

前端学习(1299):gulp插件

第一步 下载 第二步 const gulp require(gulp); const htmlmin require(gulp-htmlmin);gulp.task(first, () > {console.log(第一次执行);}); gulp.task(htmlmin, () > {gulp.src(./src/*.html)//压缩去其中的代码.pipe(htmlmin({ collapseWhitespace: true })).pipe(…

前端学习(1300)报错:无法加载文件 D:\nodejs\node_global\webpack.ps1,因为在此系统上禁止运行脚本...

解决报错&#xff1a; &#xff08;1&#xff09;以管理员身份运行命令行设置即可 &#xff08;2&#xff09;在终端执行&#xff1a;get-ExecutionPolicy&#xff0c;显示Restricted&#xff08;表示状态是禁止的&#xff09; &#xff08;3&#xff09;在终端执行&#xff…

动态规划系列 | 最长上升子序列模型(上)

文章目录 最长上升子序列回顾题目描述问题分析程序代码复杂度分析 怪盗基德的滑翔翼题目描述输入格式输出格式 问题分析程序代码复杂度分析 登山题目描述输入格式输出格式 问题分析程序代码复杂度分析 合唱队形题目描述输入格式输出格式 问题分析程序代码复杂度分析 友好城市题…