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)

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

注册和使用服务器的教程

几周前我们很高兴地宣布云服务器产品上线。对于Cloud 66客户来说,将十分容易使用公有云或私有云。今天,我将提供一个关于如何使用的简短教程。

2118
来自专栏运维技术迷

Win7下安装Virtual PC

最近心血来潮,突然想起来在XEN、KVM、VM、Openvz这些虚拟化之外还有一款尤物。当然,他就是windows的产品。一直听朋友说他们公司在用这个东西...

3019
来自专栏happyJared

Docker + Elasticsearch 集群环境搭建

无论是安装包形式还是基于Docker,搭建Elasticsearch集群环境还是较为简单的,实操的时候还遇到过一丢小问题,本文用于记录下操作过程。

683
来自专栏刺客博客

FinalShell: 优秀 SSH 客户端 / 堪比Xshell

2383
来自专栏安全运维

腾讯云 Windows Server 服务器安全运维与更新

终端窗口输入 gpedit.msc ,选择计算机配置 -》管理模版 -》Windows组件 ,下图 ↓

53111
来自专栏yl 成长笔记

域名、主机名、网站名以及 URL 基础概念

这个东西,在百度经验上已经有人讲得非常清楚了, 作为 web 方向的小白, 我写下我的理解,以便日后查看。

993
来自专栏Web项目聚集地

Oracle 11g的安装(图文详解)

Web项目聚集地的小伙伴反应在Oracle的安装与配置有很多错误与疑点,便有了这篇文章,现在是晚上2点哈哈,加油加油,日后还会有更多技术栈的专栏。Orac...

943
来自专栏网站设计制作、数字营销

做网站知识之域名解析易懂介绍

公司在做网站时,在购买了域名、主机空间、及网站源代码和数据库都做好了之后,如果网站备案通过了,就可以做域名解析,如果解析设置没有问题,10分钟之后网站就可正常打...

944
来自专栏LIN_ZONE

laravel5.5 任务调度 (转载)

我们需要在 App\Console\Kernel 类的 schedule 方法中定义所有任务调度。例如:

681
来自专栏极客生活

数据分析sql技能之数据库导入

作为数据分析师很多时候由于各种原因无法直接连接到数据库上进行sql操作。 尤其是需要大量数据计算的时候,虽然只是查询操作,但是不小心会产生非常大的CPU消耗,...

591

扫码关注云+社区