Spring Cloud之 Spring Cloud Config(一)
来源:互联网 发布:图片动态特效制作软件 编辑:程序博客网 时间:2024/05/17 08:18
一、介绍
Spring Cloud Config在分布式系统中提供服务端和客户端去支持额外的外部配置。配置服务中心(Config Server)为所有应用提供各种环境的外部配置。默认采用Git的方式存储配置文件,因此我们很容易部署修改,有助于对环境配置进行版本管理。
二、构建config server
创建一个spring boot 项目,在pom.xml添加spring-cloud-config-server 依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId></dependency>在程序的入口SpringCloudConfigServerApplication类加上@EnableConfigServer注解开启配置服务器。
@EnableConfigServer@SpringBootApplicationpublic class SpringCloudConfigServerApplication { public static void main(String[] args) { SpringApplication.run(SpringCloudConfigServerApplication.class, args); }}
创建一个application.yml 文件,内容如下
server: port: 8888spring: cloud: config: server: git: uri: https://github.com/luosai001/SpringCloudConfigRepo username: amdin password: 123456
uri是git仓库,用来存储配置信息的
username 是git仓库用户名
password 是git仓库密码
启动应用 访问localhost:8888
创建一个远程仓库,本示例在github上创建了一个仓库仓库地址为 https://github.com/luosai001/SpringCloudConfigRepo
在本地上传了一个文件到仓库,文件名为spring-cloud-config-client-dev.yml
文件配置信息如下:
server: port: 8003 #应用端口号 spring: cloud: config: allowOverride: true failFast: true overrideNone: true #覆盖非系统属性 true不覆盖 overrideSystemProperties: false #覆盖系统属性 false不覆盖 foo: i am foo,but i changed! changed!changed!
访问localhost:8888/spring-cloud-config-client/dev
返回信息
{
"name":"spring-cloud-config-client",
"profiles":[
"dev"
],
"label":null,
"version":"cadbabdf73cc54dc8b56afe84d47554efe585cb9",
"state":null,
"propertySources":[
{
"name":"https://github.com/luosai001/SpringCloudConfigRepo/spring-cloud-config-client-dev.yml",
"source":{
"server.port":8003,
"spring.cloud.config.allowOverride":true,
"spring.cloud.config.failFast":true,
"spring.cloud.config.overrideNone":true,
"spring.cloud.config.overrideSystemProperties":false,
"foo":"i am foo,but i changed! changed!changed!"
}
}
]
}
http请求地址和资源文件映射如下:
- /{application}/{profile}[/{label}]
- /{application}-{profile}.yml
- /{label}/{application}-{profile}.yml
- /{application}-{profile}.properties
- /{label}/{application}-{profile}.properties
创建一个spring boot 项目 添加依赖spring-cloud-starter-config,spring-boot-starter-web,spring-boot-starter-actuator(刷新配置)
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId></dependency><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>
程序入口类:
@SpringBootApplication@RestController@RefreshScopepublic class SpringCloudConfigClientApplication { @Value("${foo}") String foo ; public static void main(String[] args) { SpringApplication.run(SpringCloudConfigClientApplication.class, args); } @RequestMapping("hi") public String hi(){ return foo ; }}
在这个主入口中,我们将foo通过${foo}注入给foo变量,并返回。 @RefreshScope 指可以刷新配置。如果配置中foo 的值改变了,在本地刷新 /refresh ,再次访问/hi 就会发现返回的值变了。
创建一个bootstrap.yml文件
spring: application: name: spring-cloud-config-client profiles: active: dev cloud: config: uri: http://localhost:8888 profile: devmanagement: security: enabled: falseserver: port: 9000
应用名为spring-cloud-config-client
激活的文件:dev
uri:配置中心地址
management.security.enabled:false 调用/refresh刷新的时候需要。否则会没有权限访问
启动应用 访问:localhost:9000/hi 返回配置里定义的信息。
在远程外部配置文件中我们开启了不覆盖本地系统属性,不覆盖本地非系统提供属性,所以启动时,远程外部配置中端口并没有作为应用的端口。默认都是覆盖,即远程port 8003 会覆盖本地9000端口。
修改外部配置foo的值,需要手动调用localhost:9000/refresh才能刷新foo的值。如果一个值被多个进程使用,那么这几个服务都要手动调用/refresh方法,很麻烦。下一节我们将通过Spring Cloud Bus 来解决这个问题,只需要调用一次即可。
- Spring Cloud之 Spring Cloud Config(一)
- Spring Cloud入门一:Spring Cloud Config
- Spring Cloud入门之Spring Cloud Config
- spring cloud 之Spring Cloud Config 尝鲜
- spring cloud:spring cloud config
- spring cloud 之 config-server
- spring cloud 之 config-client
- Spring Cloud实战(一)-Spring Cloud Config Server
- Spring Cloud 笔记实战之 Spring Cloud Config
- spring基础:快速入门spring cloud(6):统一配置管理之spring cloud config
- 开始Spring Cloud Config
- Spring Cloud Config
- 关于spring cloud config
- spring cloud config使用
- Spring Cloud Config
- 开始Spring Cloud Config
- Spring Cloud Config 实践
- Spring Cloud Config
- ActiveMQ 的安装与使用(单节点)
- 6.表格
- linux下如何利用gdb调试汇编代码
- Core 2.0 的dll实时更新、https、依赖包变更问题及解决
- cassandra 获取int型数据问题
- Spring Cloud之 Spring Cloud Config(一)
- 返回到前一个页面时显示前一个页面中ajax获取的数据
- linux查看/修改文件编码
- 集合(京东2017秋招真题)
- Help Jimmy
- 2017 Android github上优秀开源项目分类汇总
- 基于GLSurfaceView实现自定义Camera
- JSONObject的使用
- Windows下运行ipconfig出现“不是内部命令或外部命令”