专栏首页程序源代码springcloud学习手册-Config 分布式配置中心

springcloud学习手册-Config 分布式配置中心

导读 | Config分布式配置中心

一、为什么需要使用配置中心来统一管理配置呢?

通常在一个分布式环境中,同类型的、不同类型的服务往往多达几个或者千上百个服务实例。如果出现数据源、接口等变更时,针对单独一下服务程序员通过手工修改配置就可以了。但对于分布式环境中多达上千、上百的服务实例来说,单单修改配置这项目工作就会耗费程序员很多时间和精力。所以为了更好的解决分布式环境下多台服务实例的配置统一管理问题,程序构架师们引入了统一配置管理的思想来管理作为解决这类难题的解决方案。

我们结合上面这张图可以简单总结,如下:

1、集中管理

2、不同环境不同配置

3、运行期间动态配置,实现不停机情况下配置变更参数数据。

4、自动刷新,客户端获取服务时从配置中心获取最新状态服务。

二、什么是spring cloud Config(分布式配置中心)

Springcloud Config是一个为Spring量身定做的轻量级配置中心,巧妙的将应用运行环境映射为profile,应用版本映射为label。在服务端,基于特定的外部系统(Git、文件系统或者Vault)存储和管理应用配置。它分为服务端和客户端两部分。服务端是配置中心,它是一个独立的服务应用,用来连接配置仓库并为客户端提供获取配置信息、加密、解决信息等访问接口。而客户端是各个微服务应用,它们通过配置吣来管理应用于资源与业务相关的配置内容,并在启动时从配置中心获取和加载配置信息。

三、如何构建springcloud Config 配置中心

主要有三步,可按照下面进行

第一步:创建一个基础的springboot工程,命名可随意。按照惯例在pom.xml中引入spring-cloud-config-server 的相关依赖。具体如下:

说明依赖包还要包含了资源。

  • spring-cloud-dependencies: 配置资源

第二步:创建启动类,使用@EnableConfigServer。这个注解开启config 的服务端功能具体如下:

@EnableConfigServer:说明开启config 。

第三步:配置属性文件,配置application.pxy

配置config 的基础信息,如应用名、服务端口注意下面这个图显示全部信息,不是pxy的格式,具体配置时要按照pxy的缩进格式编写。具体如下:

  • port 服务端口
  • name 服务名称
  • GIT配置 ,如配置uri(仓库位置)、searchPaths(仓库路径下的相对搜索位置,可以配置多个)、username(访问GIT仓库的用户名) 、password(访问GIT仓库的密码),因为config要基于git使用的,所以这里也配置了git的一些属性。

四、验证配置中心是否可用。

服务端我们已经配置创建完成,那怎么验证一下是否可用呢。

第一步:根据GIT配置的仓库位置,在下面创建一下config-repo目录作为配置仓库。并创建4个配置文件表示不同的环境。

其中设置了一个from属性,为每个配置文件分别设置了不同的值,如:

  • from=git-dev-1.0
  • from=git-test-1.0
  • from=git-prod-1.0
  • from=git-default-1.0

第二步:通过如下格式进行访问

第三步:返回JSON结果

可以看到多了个version版本号属性,它对应 的是git上的commit 号。证明git已经管理起来了配置文件这些信息。也说明了git仓库已经对环境配置进行了版本管理,这样用户就可以通过客户端(config 客户端)来方便地访问这些配置内容了。

五、总结

通过面向服务的配置方式,config 完成服务配置的维护,解决了对路由映射实例的维护问题。配置服务器默认采用git来存储配置信息,这样就有助于对环境配置进行版本管理,并且可以通过git客户端工具来方便的管理和访问配置内容。

声明:文章属于个人原创,转载请注明文章出处

本文分享自微信公众号 - 全华班(quanhuaban),作者:全华

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-01-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • springcloud学习手册-市面主流分布式配置中心框架汇总

    导读 | 本节主要是汇总一下,目前市面上主流应用的一些分布式配置中心框架。重点介绍下这4个框架,它们分别是: Apollo(携程 阿波罗) 、Spingclo...

    程序源代码
  • 微信开发Demo大全

    最近好多同学咨询关于微信开发的相关问题。我在网上找了找发现网上大牛真是好多啊。发现一个不错的微信开发工具包。个人感觉非常不错,推荐给大家。

    程序源代码
  • springcloud学习手册-实现Config server的高可用

    一、GIT是什么 Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds ...

    程序源代码
  • 自己写分布式配置中心(上篇)- 单机模式

    来源:http://wuwenliang.net/2018/12/05/%E8%87%AA%E5%B7%B1%E5%86%99%E5%88%86%E5%B8%8...

    程序猿DD
  • 配置中心化

    传统应用打包部署, 会在不同的环境配置不同的包, 如Local环境, Dev环境, 测试环境, UAT环境, 生产环境分别制作不同的发布包,

    louiezhou001
  • 如何利用配置中心规范构建PaaS服务配置

    在上一篇文章中,我们以MQ和ACM为例,讨论了如何借助配置中心对消息进行限流管理的场景。在本文中,我们继续以该场景为例,讲述如何以规范的配置命名格式来进行限流设...

    用户1263954
  • 如何干掉开发人员——0代码开发

    视察也就罢了,你察你的,我干我的,只要不搞幺蛾子咱还是好朋友。然鹅,临下班了,业务小姐姐来了,她目光炯炯深情款款地向我走来了。

    yuanyi928
  • 玩转OpenFeign-续集

    上一篇《玩转OpenFeign》介绍了OpenFeign的一些常用配置,不过还漏了点内容。

    Java艺术
  • Apollo 配置中心详解

    Apollo 配置中心产生背景 大多情况下程序随着功能的复杂,程序的配置也会增多:包括各种功能的开关、参数的配置、服务器的地址配置等等,同时开发人员对程序配置的...

    CSDN技术头条
  • 5.16.2-如何在CDH中安装ElasticSearch

    1.将csd文件ELK-YX-20200617-1.0-SNAPSHOT.jar放置在cloudera-scm-server服务的csd目录下

    Fayson

扫码关注云+社区

领取腾讯云代金券