如何使用分布式配置中心

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jnshu_it/article/details/84334184

这里是修真院后端小课堂,每篇分享文从

【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】

八个方面深度解析后端知识/技能,本篇分享的是:

【如何使用分布式配置中心】

大家好,我是IT修真院深圳分院第十期学员,一枚正直纯洁善良的JAVA程序员。

今天给大家分享一下,修真院官网JAVA任务十——如何使用分布式配置中心

1.背景介绍

SpringCloud简介

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

2.知识剖析

2.1 SpringCloud由什么主键组成

(1)服务于注册中心(Eureka)

(2)ribbon

(3)Feign

(4)断路器(Hystrix)

(5)路由网关(zuul)

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

(7)消息总线(Spring Cloud bus)等等

2.2 spring cloud config 分布式配置中心

2.2.1什么是spring cloud config

在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。在spring cloud config 组件中,分两个角色,一是config server,二是config client。

Spring Cloud Config为服务端和客户端提供了分布式系统的外部化配置支持。配置服务器为各应用的所有环境提供了一个中心化的外部配置。它实现了对服务端和客户端对Spring Environment和PropertySource抽象的映射,所以它除了适用于Spring构建的应用程序,也可以在任何其他语言运行的应用程序中使用。作为一个应用可以通过部署管道来进行测试或者投入生产,我们可以分别为这些环境创建配置,并且在需要迁移环境的时候获取对应环境的配置来运行。

2.2.2spring cloud config的使用好处

1.置服务器默认采用git来存储配置信息,这样就有助于对环境配置进行版本管理,并且可以通过git客户端工具来方便的管理和访问配置内容。当然他也提供本地化文件系统的存储方式。

2.使用 spring Cloud 进行集中式配置管理,将以往的配置文件从项目中摘除后放到Git 或svn中集中管理,并在需要变更的时候,可以通知到各应用程序,应用程序刷新配置不需要重启。

2.2.3 基本原理

git 上存放我们的远程配置文件 

config-server 连接到 git 

config-client 连接到config-server 

当我们启动config-client 服务的时候,client 会通过连接的 config-server 拿到远程git 上面的配置文件,然后通过 Spring 加载到对象中。 

3.常见问题

yml的配置文件怎么写,都具有什么意思

4.解决方案

spring.cloud.config.server.git.uri:配置git仓库地址

spring.cloud.config.server.git.searchPaths:配置仓库路径

spring.cloud.config.label:配置仓库的分支

spring.cloud.config.server.git.username:访问git仓库的用户名

spring.cloud.config.server.git.password:访问git仓库的用户密码

5.编码实战

spring.application.name=config-client
spring.cloud.config.label=master
spring.cloud.config.profile=dev
#spring.cloud.config.uri= http://localhost:8888/


eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/
spring.cloud.config.discovery.enabled=true
spring.cloud.config.discovery.serviceId=config-server
server.port=8881

ConfigClientApplication {

   (String[] args) {
      SpringApplication.(ConfigClientApplication.args)}

   ()
   String (= )
   String (){
      }

}
spring.application.name=config-server
server.port=8886

spring.cloud.config.server.git.uri=https://github.com/CZM2217/SpringcloudConfig
spring.cloud.config.server.git.searchPaths=respo
spring.cloud.config.label=master
spring.cloud.config.server.git.username=
spring.cloud.config.server.git.password=
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/

6.扩展思考

1、问:springcloud 可以结合zookeeper吗?

     答:springcloud可以使用zookeeper作为注册中心,也可以用consul作为注册中心,并非一定要用eureka。只不过使用eureka的话,能共使用Netflix的oss组件,搭建起来更加方便。

2、http请求地址和资源文件映射有什么内容

/{application}/{profile}[/{label}]

/{application}-{profile}.yml

/{label}/{application}-{profile}.yml

/{application}-{profile}.properties

/{label}/{application}-{profile}.properties

3、需要什么依赖

  1. <dependency>

  2. <groupId>org.springframework.cloud</groupId>

  3. <artifactId>spring-cloud-starter-config</artifactId>

  4. </dependency>

技能树.IT修真院   

  “我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

   这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。

快来与我一起学习吧~http://www.jnshu.com/home

腾讯视频:https://v.qq.com/x/page/o07416cxxz7.html

PPT链接 视频链接

更多内容,可以加入IT交流群565734203与大家一起讨论交流

这里是技能树·IT修真院:https://www.jnshu.com,初学者转行到互联网的聚集地

猜你喜欢

转载自blog.csdn.net/jnshu_it/article/details/84334184
今日推荐