| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> Spring Cloud 学习笔记之——09 Config 分布式配置中心 -> 正文阅读 |
|
[开发工具]Spring Cloud 学习笔记之——09 Config 分布式配置中心 |
????????微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以—套集中式的、动态的配置管理设施是必不可少的。 SpringCloud Config为微服务架构中的微服务提供集中化的外部配置支持(Git / Github)、配置服务器为各个不同微服务应用的所有环境提供了一个中心化的外部配置。 ClientA、?ClientB、?ClientC 配置文件中公共的部分从配置中心获取,私有的部分用自己的 主要功能: ????????1、集中管理配置文件,避免配置膨胀 与Github 整合:由于SpringCloud Config默认使用Git来存储配置文件(也有其它方式,比如支持SVN和本地文件),最推荐Git,而且使用的是http / https访问的形式 SpringCloud 官网链接:Spring Cloud Config Config 服务配置与测试1、在 github / giee 上创建一个名为 springcloud-config 的仓库,仓库中有两个分支一个是 master,一个是 dev 分支,两个分支都有 config-dev.yml 、config-test.yml 和 config-prod.yml文件 dev 分支下三个文件的内容分别是: config-dev.yml 文件中 config: info: dev branch,springcloud-config/config-dev.yml version=1 config-prod.yml 文件中 config: info: dev branch,springcloud-config/config-prod.yml version=1 config-test.yml 文件中 config: info: dev branch,springcloud-config/config-test.yml version=1master 分支下三个文件的内容分别是: config-dev.yml config: info: master branch,springcloud-config/config-dev.yml version=1 config-prod.yml config: info: master branch,springcloud-config/config-prod.yml version=1 config-test.yml config: info: master branch,springcloud-config/config-test.yml version=1? 远程仓库中文件名称如下图所示: 2、创建 cloud-config-center-3344 模块作为配置中心模块 2.1、POM 依赖
2.2、YML 配置文件
2.3、主启动类:com.atyixuan.springcloud.MainAppConfigCenter3344?? 注意添加 @EnableConfigServer 注解
2.4、修改 hosts 文件添加映射:hosts 文件路径?C:\Windows\System32\drivers\etc\hosts,在该文件末尾添加如下内容
3、测试:先后启动微服务?cloud-eureka-server7001 和?cloud-config-center3344 浏览器输入:http://config-3344.com:3344/master/config-dev.yml 配置读取规则 ????????依据 Spring Cloud Config 官网的内容,HTTP服务中有如下形式的资源:????? /{application}/{profile}[/{label}] /{application}-{profile}.yml /{label}/{application}-{profile}.yml /{application}-{profile}.properties /{label}/{application}-{profile}.properties 推荐使用?/{label}/{application}-{profile}.yml 方式==> /{分支名称}/{服务名称}-{环境}.yml 对于 master 分支下的文件: http://config-3344.com:3344/master/config-dev.ymlhttp://config-3344.com:3344/master/config-dev.yml http://config-3344.com:3344/master/config-test.yml http://config-3344.com:3344/master/config-prod.yml 对于 dev 分支下的文件: http://config-3344.com:3344/dev/config-dev.yml http://config-3344.com:3344/dev/config-test.yml http://config-3344.com:3344/dev/config-prod.yml 还有如下两种方式:/{application}-{profile}.yml? ==> /{服务名称}-{环境}.yml http://config-3344.com:3344/config-dev.yml http://config-3344.com:3344/config-test.yml http://config-3344.com:3344/config-prod.yml /{application}-{profile}/{label} ==> /{服务名称}-{环境}/{分支名称}.yml http://config-3344.com:3344/config/dev/master http://config-3344.com:3344/config/test/master http://config-3344.com:3344/config/prod/master label ==> 服务名称, label ==> 分支(branch),? ?profofile ==> 环境(dev/test/prod) Config 客户端配置与测试新建cloud-config-client-3355 模块 1、POM 文件
2、bootstrap.yml 配置文件
boostrap.yml 文件内容:
3、主启动类:com.atyixuan.springcloud.ConfigClientMain3355
?4、业务类:com.atyixuan.springcloud.controller.ConfigClientController
上面?@Value("${config.info}") 就是获取配置文件中的内容,在远程仓库中,config-dev.yml 配置文件中就是config.info 5、测试:先后启动? cloud-eureka-server7001、cloud-config-center3344 和 cloud-config-client-3355 浏览器输入:http://config-3344.com:3344/master/config-dev.yml ?http://localhost:3355/configInfo 同步刷新问题?????????Linux运维修改GitHub上的配置文件内容做调整,将远程库中的 verision 信息修改为 2? ? ? ? ?????????刷新cloud-config-center3344,发现ConfigServer配置中心立刻响应? ?????????刷新?cloud-config-client-3355,?发现ConfigServer客户端没有任何响应 ?? ? ? ? cloud-config-client-3355?没有变化除非自己重启?或者重新加载,重启?cloud-config-client-3355 再次刷新???http://localhost:3355/configInfo 链接?链接 Config 客户端之动态刷新1、在 cloud-config-client-3355 的 POM 文件中引入
2、修改其 YML 配置文件:
3、在业务类 com.atyixuan.springcloud.controller.ConfigClientController?上添加
4、测试,再次启动? cloud-eureka-server7001、cloud-config-center3344 和 cloud-config-client-3355 浏览器中输入:http://config-3344.com:3344/master/config-dev.yml
?再次修改远程仓库中的文件内容:修改其版本号为 version=3? 刷新?http://config-3344.com:3344/master/config-dev.yml? 远程库中的修改立即生效 刷新??http://localhost:3355/configInfo?版本号没有变化,依旧是2 ?为了让版本号的改变可以同步到?cloud-config-client-3355,必须向 cloud-config-client-3355 发送 Post 请求刷新?cloud-config-client-3355?
此时刷新? ?http://localhost:3355/configInfo,版本号 version = 3 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 10:17:33- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |