springcloud-配置中心
1.前言
微服务以为者要将单体应用中的业务才分成一个个的子服务,每个服务的粒度相对较小, 因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以套集中式的、动态的配置管理设施是必不可少的。
2.SpringCloud Config 讲解
SpringCloud Config 为微服务架构中微服务提供了集中化的外部配置支持,配置服务器为各个不同微服务应用的的所有环境提供了一个中心化的外部配置。Spring Cloud 分为服务端和客户端两部分:1.服务端也称为分布式配置中心,它是一个独立的微服务应用, 用来连接 配置服务器并为客户端提供获取配置信息,加密/ 解密信息等访问接口。 2.客户端则是通过制定的配置中心来管理应用资源,以及与业务相关的配置内容,并在启动的时候从配置中心获取好加载配置信息配置服务器默认采用 git 来存储配置信息,这样就有助于缓解配置惊醒 版本管理,并且可以通过 git 客户端工具来方便管理和访问配置内容。
3.实践,此次是将存有数据库信息的yml文件放在github上,实现远程数据源管理
3.1 github 创建仓库,放入客户端关于数据源信息的yml文件,下图是git的本地仓库数据,以及yml里面的数据,到时我们将会通过微服务配置中心获取到git上一样的数据
3.2 服务端
3.2 .1 主要依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency>
3.2.2 启动类添加主要注解
3.2.3 服务端yml设置
3.3.客户端
3.3.1 客户端依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency>
3.3.2 新建bootstrap.yml,不是application.yml(注意),主要内容如下,其中数据源不需要配置,我们读取git上面的
3.3.2启动类注解
3.4 启动流程
1.先启动注册中心 2.启动配置中心-服务端 3. 启动需要配置中心数据的客户端
启动配置中心服务端经常报错:这是超时引起的,国内启动git超级慢经常超时,个人建议现在浏览器打开github,再启动这个服务概率会大很多
2.访问服务端,能拿到git上的信息
3.连接客户端,如果没有报错:找不带驱动什么的就说明客户端能获取服务端的数据即git上的数据
思考:git上配置改了,怎么刷新呢?微服务怎么主动更新配置数据呢?手动?自动?