springcloud的分布式配置Config
1、为什么要统一配置管理?
微服务由多个服务构成,多个服务多个配置,则对这些配置需要集中管理、不同环境不同配置,运行期间动态调整,自动刷新。
统一管理微服务的配置:分布式配置管理的一些组件:
zookeeper或者consul或者config。百度的:discof,阿里的:diamond,携程的:apollo。
2、springcloud config:
springcloud config为分布式系统提供了服务器端和客户端的支持,包括config server和config client。config server是一个可横向扩展、集中式的配置服务器。默认使用git存储配置内容。config client是server的客户端,用于操作server的配置属性。
3、config server的配置:
注解:
配置文件:
配置完server后,HTTP如何访问码云里面的文件呢:如下几几种方式:
application即你配置的application的名字,这里的application可以任意指定,都会从git远程读取文件。
profile即配置的环境,即这里git里面的哪个文件,比如application.yml还是foobar.yml这些,一般都是先根据profile的名称寻找文件,如果没有改文件,则默认从application中寻找,如果没有application则停止寻找,寻找失败。即有个默认的顺序的。
label指的是git里面的master还是branch这些。
4、config client的配置:
5、问题:client读取server中的配置文件:client先连接server,然后server再连接git仓库中的配置文件
(1)当client的配置文件为application.yml的时候,报错:
不能读取配置文件中的@Value的值
为什么?
springcloud里面有个启动上下文
这个作用是:用来加载远端的配置,这里指的是server中的配置。
加载顺序:bootstrap ----》config server----》application,这样的加载顺序,所以利用bootstrap来连接server加载远程配置,然后加载application。
如果我们配置为application是加载不了远端服务的。
但是:
springclouod版本:Finchley.M8这个版本中,用application.yml和bootstrap.yml中作用是一样的。
(2)本地文件与远程文件名称一致,是选择本地的还是远程?
答案:远程的,因为一旦加载,就按照远程的为准。
6、多个服务,多个配置仓库,分布式配置,分布式管理理念---即一个应用一个仓库,一种环境一个仓库
官方推荐使用git仓库,这里git的好处:版本审计,分布式比较简单。
一个应用一个仓库的例子:
利用通配符来进行设置,将仓库的名称与application应用的名称设置为一样的,这样访问的时候就可以区分到底是哪个应用的仓库。
比如一个仓库设置为simple,一个仓库设置为special。
则利用上面的通配符,可以访问不同的仓库:
修改为special即special的仓库。
7、模式匹配与配置多仓库
不怎么建议使用,先了解吧。
7、高可用的配置管理中心
这里参考方大神的博客吧:
http://blog.csdn.net/forezp/article/details/70037513
8、git仓库的配置属性手动和自动刷新
即git仓库中的属性修改,代码中自动更新这些属性,且在生产环境不停机。
要实现自动刷新,config server服务端是不需要更改的,只需要在client服务端修改即可。
(1)首先看下手动刷新::
加注解:加依赖:
原因::
这个是建立在spring-boot-actuator基础上面的,所以我们需要加依赖。
原因:
刷新的方式属于手动刷新:
上面配置完成后,我们需要在postman或者curl中进行:http://localhost:3536/refresh要通过链接来刷新,即通过rest端点来刷新的,效率太低了。
注意:@RefreshScope与@Configuration不能一起使用,否则会产生不可思议的问题,个人观点。
注意一个问题:我们在使用链接刷新的时候,在postman中测试,提示401错误,
Full authentication is required to access this resource
即没有权限,这里我们需要进行设置:
http://blog.csdn.net/ruben95001/article/details/76921090?locationNum=2&fps=1
(2)自动刷新见下一篇博客
springcloud的分布式配置Config的更多相关文章
- springCloud学习-分布式配置中心(Spring Cloud Config)
1.简介 Spring Cloud Config :分布式配置中心,方便服务配置文件统一管理,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中.在spring cloud co ...
- SpringCloud的分布式配置及消息总线
1.在搭建分布式配置时,我们大概看下分布式配置的流程 如图所示: 当一个系统中的配置文件发生改变的时候,我们需要重新启动该服务,才能使得新的配置文件生效,spring cloud config可以实现 ...
- SpringCloud搭建分布式配置中心(基于git)
1.简介 Spring Cloud Config.它用来为分布式系统中的基础设施和微服务提供集中化的外部配置支持,分为服务端和客户端两个部分. 其中服务端也称为分布式配置中心,他是独立的微服务应用,用 ...
- 深入理解SpringCloud之分布式配置
Spring Cloud Config Server能够统一管理配置,我们绝大多数情况都是基于git或者svn作为其配置仓库,其实SpringCloud还可以把数据库作为配置仓库,今天我们就来了解一下 ...
- SpringCloud之自动化配置-config
编程开发的时候有没有觉得很多配置文件需要维护,比如,修改了数据库连接,所有用到该数据库的服务配置都得替换,是不是超级的麻烦呢 下面,给大家介绍一下Spring提供的配置自动化组件-spring clo ...
- 一起来学Spring Cloud | 第七章:分布式配置中心(Spring Cloud Config)
上一章节,我们讲解了服务网关zuul,本章节我们从git和本地两种存储配置信息的方式来讲解springcloud的分布式配置中心-Spring Cloud Config. 一.Spring Cloud ...
- SpringCloud(6)分布式配置中心Spring Cloud Config
1.Spring Cloud Config 简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件.在Spring Cloud中,有分布式配置中心组 ...
- SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)
一.简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件.在Spring Cloud中,有分布式配置中心组件spring cloud config ...
- 史上最简单的SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)
一.简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件. 在Spring Cloud中,有分布式配置中心组件spring cloud confi ...
随机推荐
- IE10不能显示JSON文件内容
IE7,8,9下Ajax返回后,再执行跳转,会弹出阻止提示框. 所以我采用WebForm 提交思想: //导出 jv.postOpen = jv.PostOpen = jv.Export = func ...
- LVS 负载均衡 keepalive
为什么要学lvs 工作在网络模型的7层,可以针对http应用做一些分流的策略,比如针对域名.目录结构, Nginx单凭这点可利用的场合就远多于LVS了.最新版本的Nginx也支持4层TCP负载,曾经这 ...
- js循环复制一个div
<html> <head> <title>Test of cloneNode Method</title> <script type=" ...
- Daily Scrum1 11.3
今天是我们团队进入代码实现阶段的第一天,经过一周对上一届项目代码的阅读和研究,队员们已经从代码中分析出我们这次项目将要修改和补充的地方,我们接下来要做的地方就是在两周的时间内将团队项目在alpha阶段 ...
- BugPhobia准备篇章:Beta阶段前后端接口文档
0x00:序言 Two strangers fell in love, Only one knows it wasn’t by chance. To the searching tags, you m ...
- 超级迷宫之NABCD
模式之一:双人模式 N:基于双人之间的竞争与协作,朋友之间可以有一个竞争比赛,一决高下,男女朋友之间适合双人协作模式,共同完成游戏. A:双人竞争模式为双人同起点或不同起点来进行游戏,在竞争的紧张压力 ...
- 个人作业-Week 2
一.代码复审 概要部分 代码能符合需求和规格说明么? 能: 代码设计是否有周全的考虑? 有较为周全的考虑: 代码可读性如何? 可读性一般: 代码容易维护么? 不太容易维护: 代码的每一行都执行并检查过 ...
- python查询mysql以字典返回
# *_*coding:utf-8 *_* import pymysql conn = pymysql.connect(host='192.168.33.10', user='root', passw ...
- CentOS下Neo4j安装教程
本文记录一下在CentOS 6.7上,安装neo4j图数据库,本文安装的版本为neo4j-community-2.3.9-unix.tar.gz. 下载Neo4j安装包 使用wget命令获取Neo4j ...
- centos 升级内核(编译安装)
yum install -y wget gcc gc bc gd make perl ncurses-devel xz下载地址:https://www.kernel.org#tar -Jxvf lin ...