前言
在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所
以需要分布式配置中心组件。
正文
在 SpringCloud 中,有分布式配置中心组件 SpringCloud
Config,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程 Git 仓库中。在 SpringCloud Config 组件中,分两个角色,一是 Config Server,二是 Config
Client。
Config Server 是一个可横向扩展、集中式的配置服务器,它用于集中管理应用程序各个环境下的配置,默认使用 Git 存储配置文件内容,也可以使用 SVN 存储,或者是本地文件存储。
Config Client 是 Config Server 的客户端,用于操作存储在 Config Server 中的配置内容。
微服务在启动时会请求 Config Server 获取配置文件的内容,请求到后再启动容器。
代码实现
- 配置服务端
1. 在码云上创建仓库(点击右上角的加号,下拉菜单选择新建仓库);
2.上传配置文件,将某个工程的 application.yml 改名后上传(文件规则为 application-profile.yml 或 application-profile.properties,其中 application 为应用名称,profile 指的开发环境,如 base-dev.yml);
3.创建配置中心工程模块,引入依赖;
4.创建启动类 ConfigServerApplication;<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring‐cloud‐config‐server</artifactId> </dependency> </dependencies>
5.编写配置文件 application.yml(注意缩进);// 开启配置服务 @EnableConfigServer @SpringBootApplication public class ConfigServerApplication { public static void main(String[] args) { SpringApplication.run(ConfigServerApplication.class, args); } }
6.启动浏览器访问 http://localhost:12000/base-dev.yml 可以看到配置内容(base-dev.yml 为之前上传的文件名)。spring: application: name: tensquare‐config cloud: config: server: git: uri: https://gitee.com/wmb3609/tensquare_config.git #码云仓库的地址 server: port: 12000
- 配置客户端
1.在之前上传配置文件的工程中引入依赖;
2.删除已上传的 application.yml,添加 bootstrap.yml ;<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring‐cloud‐starter‐config</artifactId> </dependency>
3.启动配置中心工程和客户端工程,测试能否正常启动。spring: cloud: config: name: base #上传的配置文件文件名前缀 profile: dev #上传的配置文件文件名后缀 label: master #指定仓库分支 uri: http://127.0.0.1:12000 #配置中心工程地址
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于