欢迎光临散文网 会员登陆 & 注册

java架构师高端课微服务06 Spring Cloud Config

2020-07-06 17:36 作者:自学Python的小姐姐呀  | 我要投稿

主要内容

分布式配置中心介绍

基于Gitee管理配置文件

搭建分布式配置中心服务端

搭建分布式配置中心客户端

配置热刷新

学习目标

Spring Cloud Config

一、 分布式配置中心介绍

什么是分布式配置中心

在常规的开发中,每个微服务都包含代码和配置。其配置包含服务配置、各类开关和业务配置。如果系统结构中的微服务节点较少,那么常规的代码+配置的开发方式足以解决问题。当系统逐步迭代,其微服务会越来越复杂,慢慢演化成网状依赖结构,这个时候常规的代码+配置的开发方式就并不合适了,因为还要考虑整体系统的扩展性、伸缩性和耦合性等。这些问题中,配置的管理也是非常麻烦的。

如果还是以常规开发形式管理配置,则要承担反复修改编译代码、重启系统、重新打包等风险。所以,一个可以集中管理,带有版本控制的配置中心应运而生。

spring cloud config就是一个配置中心。其采用集中式管理每个微服务的配置信息,并使用GIT等版本仓库统一存储配置内容,实现版本化管理控制。微服务与配置中心使用rest方式交互来实现可扩展的配置服务。

spring cloud config配置中心解决了微服务系统的配置中心化、配置版本控制、平台独立、语言独立等问题,其特性如下:

提供服务端和客户端支持(spring cloud config server和spring cloud config client)

集中式管理分布式环境中的配置信息

基于spring环境提供配置管理,与spring系列框架无缝结合

可用于任何语言开发环境

默认基于GIT仓库实现版本控制

分布式配置中心结构图

二、 基于Gitee管理配置文件

在Gitee中集中管理配置文件,为保证文件集中化管理,独立创建仓库。具体过程如下:

创建仓库

2  创建文件并编辑内容

2.1 application-service-config.yml配置文件

2.2 application-service-config-dev.yml配置文件

三、 搭建分布式配置中心服务端

POM依赖

2  配置文件application.yml

3  启动类



4  浏览器测试获取Gitee中的配置文件

当配置中心服务端启动后,可以通过浏览器访问配置中心服务端应用,获取我们保存在Gitee中的配置文件内容,具体访问路径格式如下:

http://config-server-ip:port/name/profile/label

name - Gitee中保存的配置文件核心命名

profile - Gitee中保存的配置文件扩展环境命名

label - Gitee中的仓库分支

如访问: http://localhost:8888/application-service-config/default/master

代表在Gitee中master分支下,查找命名为application-service-config.yml | application-service-config.properties配置文件。



四、 搭建分布式配置中心客户端

每个Spring Cloud微服务应用(除Eureka和Config配置中心服务端)都可以看做是Spring Cloud Config客户端应用,都可以通过Spring Cloud Config服务端动态获取保存在Gitee中的配置文件。

POM依赖

2  配置文件 bootstrap.yml

使用优先级最高的全局配置文件bootstrap.properties来配置当前应用启动时访问哪一个分布式配置中心服务端获取配置文件。


一、 通过spring-boot-starter-actuator可以实现配置中心客户端应用不重启,当某事件触配置热刷新

发时,重新访问配置中心服务端,获取新的配置文件,并重新初始化本地环境。这种不重启应用实现环境刷新的方式称为热刷新。

具体实现过程如下:

POM依赖


2  配置文件



3  测试热刷新环境

发送POST请求到http://ip:port/actuator/refresh,应用会重新访问配置中心服务端,加载最新的配置文件内容,并刷新当前应用环境。

4  代码中使用远程配置内容

如果代码中使用了Gitee中保存的配置文件内容,那么希望热刷新的时候,重新初始化对象属性值,则需要在对应类型上增加注解@RefreshScope,通知Spring容器,当前类型的对象,在环境刷新时,需要重新初始化对象。




java架构师高端课微服务06 Spring Cloud Config的评论 (共 条)

分享到微博请遵守国家法律