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的更多相关文章

  1. springCloud学习-分布式配置中心(Spring Cloud Config)

    1.简介 Spring Cloud Config :分布式配置中心,方便服务配置文件统一管理,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中.在spring cloud co ...

  2. SpringCloud的分布式配置及消息总线

    1.在搭建分布式配置时,我们大概看下分布式配置的流程 如图所示: 当一个系统中的配置文件发生改变的时候,我们需要重新启动该服务,才能使得新的配置文件生效,spring cloud config可以实现 ...

  3. SpringCloud搭建分布式配置中心(基于git)

    1.简介 Spring Cloud Config.它用来为分布式系统中的基础设施和微服务提供集中化的外部配置支持,分为服务端和客户端两个部分. 其中服务端也称为分布式配置中心,他是独立的微服务应用,用 ...

  4. 深入理解SpringCloud之分布式配置

    Spring Cloud Config Server能够统一管理配置,我们绝大多数情况都是基于git或者svn作为其配置仓库,其实SpringCloud还可以把数据库作为配置仓库,今天我们就来了解一下 ...

  5. SpringCloud之自动化配置-config

    编程开发的时候有没有觉得很多配置文件需要维护,比如,修改了数据库连接,所有用到该数据库的服务配置都得替换,是不是超级的麻烦呢 下面,给大家介绍一下Spring提供的配置自动化组件-spring clo ...

  6. 一起来学Spring Cloud | 第七章:分布式配置中心(Spring Cloud Config)

    上一章节,我们讲解了服务网关zuul,本章节我们从git和本地两种存储配置信息的方式来讲解springcloud的分布式配置中心-Spring Cloud Config. 一.Spring Cloud ...

  7. SpringCloud(6)分布式配置中心Spring Cloud Config

    1.Spring Cloud Config 简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件.在Spring Cloud中,有分布式配置中心组 ...

  8. SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)

    一.简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件.在Spring Cloud中,有分布式配置中心组件spring cloud config ...

  9. 史上最简单的SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)

    一.简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件. 在Spring Cloud中,有分布式配置中心组件spring cloud confi ...

随机推荐

  1. oAuth2.0在laravel5.2中的简单应用

    oAuth是一个关于授权的开放网络标准,目前的版本是2.0.laravel是php开发框架,目前最新稳定版本是5.5.授权在应用程序中有非常广泛的使用场景,本文将以laravel5.2为例来简单介绍o ...

  2. python如何与以太坊交互并将区块链信息写入SQLite

    关于区块链介绍性的研讨会通常以易于理解的点对点网络和银行分类账这类故事开头,然后直接跳到编写智能合约,这显得非常突兀.因此,想象自己走进丛林,想象以太坊区块链是一个你即将研究的奇怪生物.今天我们将观察 ...

  3. [linux] 利用PROMPT_COMMAND实现命令审计

    网上查了实现命令审计大概有以下几种: 查不到了,改天再补充 以下环境基于CentOS 6 1.修改history时间格式 echo 'HISTTIMEFORMAT="%F %T " ...

  4. Django_csrf

    CSRF攻击介绍 CSRF 攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在并未授权的情况下执行在权限保护之下的操作.比如说,受害者 Bob 在银行有一笔存款,通过对银行的 ...

  5. apm server

    目录 1.apm的tomcat启动失败解决方法 2.apm的mysql修改root密码的方法 内容: 1.apm的tomcat启动失败解决方法 APMServ5.2.6 无法启动Apache的一个问题 ...

  6. 关于rand()函数 转载于其他人

    C++中的rand()函数 分类: 编程语言/ C#/ 文章 C++中产生随机数种子对于初学者一直都很困惑.大家知道,在C中有专门的srand(N)函数可以轻松实现这一功能,然而在C++中则要复杂一些 ...

  7. Teamwork(The fourth day of the team)

    在这天我们已经开始去做自己手上的的任务.由于我们都忙于手头上的工作,所以这天我们就没有过多的交流,有的可能就是网上说一下实现到了哪里.

  8. js 杂项(一)函数篇

    你还应该知道箭头函数( => )可以用来保留上下文.这个方法也可以:

  9. Angular与PHP之间的不同的请求方式(post/get)导致的传参问题

    angularJS的$http发送POST请求,PHP无法接受数据的问题 使用jQuery进行ajax请求 $.ajax({ type: 'POST', url:'url.php', data: da ...

  10. 正确的姿势解决IE弹出证书错误页面

    在遇到IE证书问题时,正确的解法是安装证书到受信任的储存区 1.继续浏览此网站 2.进入页面后,点击地址栏的证书错误,查看证书 3.安装,设置安装到受信任的颁发机构 4.OK