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;…

c++ 匿名函数

#include<iostream> #include <cstdlib> using namespace std;int main() {//为了在以后便于区分&#xff0c;我这段main()代码叫做main1autofunc [] { printf("%d\n",1989); };func();system("pause");return 0; } 转载于:https://www.cnblo…

SpringCloud Stream消息驱动

为啥有这个技术&#xff1f;&#xff1f;&#xff1f; 1. 这个stream是操作消息队列的&#xff0c;简化&#xff0c;学习消息队列的成本降低。 2. 可操作rabbitMQ兔子message queue&#xff0c;kafaka&#xff0c;可理解为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密码的一些文章&#xff0c;里面都有写怎么去解决&#xff0c;但有时觉得写得太恶心&#xff0c;要么一字不漏的抄别人的&#xff0c;要么就说得不清不楚&#xff0c;好了&#xff0c;不吐槽了&#xff0c;以下是解决的整个过程。 首先我们要知道忘…

SpringCloud Sleuth分布式请求链路追踪

概念 1. 为什么需要链路追踪&#xff1f; 在微服务框架中&#xff0c;一个由客户端发起的请求在后端系统中 会经过多个不同的的服务节点调用来协同产生最后的请求结果, 每一个前段请求都会形成一复杂的分布式服务调用链路, 链路中的任何一环出现高延时或错误都会引起整个请求最…

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

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

Android中如何下载文件并显示下载进度

原文地址&#xff1a;http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1125/2057.html 这里主要讨论三种方式&#xff1a;AsyncTask、Service和使用DownloadManager。 一、使用AsyncTask并在进度对话框中显示下载进度 这种方式的优势是你可以在后台执行下载任务的同时…

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

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

nacos作为服务注册中心

nacosnacos简介nacos 作为服务注册中心demo基于Nacos的服务提供者基于Nacos的服务消费者nacos切换ap和cp 模式nacos简介 为什么叫nacos 前四个字母分别为Naming和Configuration的前两个字母&#xff0c;最后的s为Service。是什么 一个更易于构建云原生应用的动态服务发现&am…

前端学习(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); }) 运行结果

layui 数据表格代码

一套增删改查&#xff0c;打完收工。 layui版本&#xff1a;2.4.5 默认请求,分页。 /rest_address?page1&limit1json数据格式要求. 参数说明文档 https://www.layui.com/doc/modules/table.html#cols <!DOCTYPE html> <html lang"en" xmlns:th"…

[BZOJ 1085] [SCOI2005] 骑士精神 [ IDA* 搜索 ]

题目链接 : BZOJ 1085 题目分析 : 本题中可能的状态会有 (2^24) * 25 种状态&#xff0c;需要使用优秀的搜索方式和一些优化技巧。 我使用的是 IDA* 搜索&#xff0c;从小到大枚举步数&#xff0c;每次 DFS 验证在当前枚举的步数之内能否到达目标状态。 如果不能到达&#xff0…

nacos服务配置中心演示

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

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

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

core java 8~9(GUI AWT事件处理机制)

MODULE 8 GUIs--------------------------------GUI中的包&#xff1a; java.awt.*; javax.swing.*; java.awt.event.*; 要求:1)了解GUI的开发流程&#xff1b;2&#xff09;掌握常用的布局管理器 开发GUI图形界面的步骤-------------------------------1.选择容器 1&#xff0…

note.. redis五大数据类型

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