目标:使用Spring Cloud Config建立服务配置中心
开发环境:IntelliJ IDEA
操作步骤:基础环境配置->Config Server组件配置->客户端微服务编写->远程Git仓库配置与应用测试->HA配置测试
1.基础环境配置
与Eureka组件类似,新建一个项目Spring_Cloud_Config,配置参考博客:
https://blog.csdn.net/xingyuzhe/article/details/79907748
2.Config Server组件配置
对传统的单体应用,常使用配置文件管理所有配置:例如一个Spring Boot开发的单体应用,可将配置内容放在application.yml文件中,如需切换环境,则需要在启动应用时指定spring.profiles.active={profile}。
统一管理微服务配置需求:
(1)集中管理配置
(2)不同环境不同配置
例如,数据源配置在不同的环境(开发、测试、预发布、生产等)中是不同的
(3)运行期间可动态调整
可根据各个微服务的负载情况,动态调整数据源连接池大小或熔断阈值,并在调整配置时不停止微服务
(4)配置修改后可自动更新
如配置内容发生变化,微服务能够自动更新配置
综上,对微服务架构而言,一个通用的配置管理机制是必不可少的,常见做法是使用配置服务器管理配置。
Spring Cloud Config为分布式系统外部化配置提供了服务端和客户端的支持,包含Config Server和Config Client两部分。
项目地址:https://github.com/spring-cloud/spring-cloud-config
开发流程:
(1)新建Module工程-CaaS_Config_Server
(2)添加配置依赖
config配置依赖:
maven插件配置依赖:
(3)编写Module项目主程序
新建启动类ConfigServerApplication.java
@EnableConfigServer注解开启Config Server的功能
(4)应用参数配置
在resources目录下新建application.yml配置文件:配置文件读取地址设置为本地(native)
(5)新建shared文件夹-存放本地配置文件
Module项目当前结构:
在shared文件夹中新建一个客户端微服务配置文件:CaaS_Config_Client-dev.yml
3.客户端微服务编写
开发流程:
(1)新建Module工程-CaaS_Config_Client
(2)添加配置依赖
添加Config的起步依赖和Web功能的起步依赖:
添加maven插件支持:
(3)编写Module项目主程序
读取配置文件变量,并返回变量值
(4)应用参数配置
新建配置文件bootstrap.yml,其调用优先级高于application.yml
(5)访问测试
依次启动CaaS_Config_Server与CaaS_Config_Client两个工程,访问http://localhost:8762/boecaas
成功读取配置文件
4.远程Git仓库配置与应用测试
修改CaaS_Config_Server文件,设置远程Git地址(gitlab服务器):因为是public仓库,所以不需要用户名密码
启动Config服务应用:访问http://localhost:8769/CaaS_Config_Client-dev.yml
启动客户端应用:访问http://localhost:8762/boecaas
5.HA配置
将上一节中的Config Server服务进行改造,加入服务注册客户端组件,并通过配置服务启动时的端口号实现Config Server高可用。
开发流程:
(1)添加配置依赖
(2)改写Module主程序
添加注解:@EnableEurekaClient
(3)修改应用配置文件
加入注册中心的配置:
以同样的方法为Config Client提供注册服务
依次启动eureka - config server - config client
查看注册中心已有服务:http://localhost:8761/
访问http://localhost:8762/boecaas