Spring Cloud 之配置中心

来源:互联网 发布:安信网络身份认证 编辑:程序博客网 时间:2024/04/29 11:36

配置服务器默认采用git来存储配置信息,也可以本地存储。

配置中心配置

1. pom.xml中加入spring-cloud-config-server,spring-cloud-starter-eureka

2. 主类中配置@EnableConfigServer @EnableEurekaClient

3. application.yml配置

spring.application.name=config-server

server.port=60002

eureka.client.serviceUrl.defaultZone=http://localhost:10001/eureka/

4. 若使用本地存储:

spring.profiles.active=native

spring.cloud.config.server.native.search-locations=classpath:/config

在resource目录下创建config目录,里面配置clientA-dev.yml,clientA-test.yml等

5. 若使用git存储:

spring.cloud.config.server.git.uri=http://git.oschina.net/didispace/SpringBoot-Learning/

spring.cloud.config.server.git.searchPaths=Chapter9-1-4/config-repo

spring.cloud.config.server.git.username=username

spring.cloud.config.server.git.password=password

uri:配置git仓库位置;searchPaths:配置仓库路径下的相对搜索位置,可以配置多个;username:访问git仓库的用户名;password:访问git仓库的用户密码

客户端A配置

1. pom.xml中加入spring-cloud-starter-eureka,spring-cloud-starter-config

2. spring.application.name=clientA

spring.cloud.config.enabled=true

spring.cloud.config.discovery.enabled=true

spring.cloud.config.discovery.service-id=config-server

spring.cloud.config.profile=dev

spring.cloud.config.label=master

eureka.client.serviceUrl.defaultZone=http://localhost:10001/eureka/

解释:

配置中心的{application}-{profile}.properties配置文件,{label}对应git上不同的分支,默认为master。

spring.application.name:对应{application}部分

spring.cloud.config.profile:对应{profile}部分

spring.cloud.config.label:对应git的分支。如果配置中心使用的是本地存储,则该参数无用

spring.cloud.config.uri:配置中心的具体地址(不建议使用,因为不利于负载均衡)

spring.cloud.config.discovery.service-id:指定配置中心的service-id,便于扩展为高可用配置集群。

特别注意:上面这些与spring-cloud相关的属性必须配置在bootstrap.properties中,config部分内容才能被正确加载。因为config的相关配置会先于application.properties,而bootstrap.properties的加载也是先于application.properties。例如上面的defaultZone如果不配置,则找不到service-id,会导致启动失败。

配置中心集群:

1. config-server主类配置@EnableEurekaClient,并启动多个,相当于有多个配置中心注册在服务中心;

2. config-client的properties配置中使用spring.cloud.config.discovery.service-id指定config-server,实现负载均衡。如此,任意一个config-server节点crash了也不影响config-client的运行。

配置实时刷新

配置中心的数据修改后,客户端可实时获取更新内容,实现方式:

1. config-client的pom.xml中新增spring-boot-starter-actuator监控模块,其中包含了/refresh刷新API。

2. git中配置数据修改后,config-client中执行http://localhost:18443/refresh 即可实现client端配置数据更新

实例源码: https://github.com/jixuju/spring-cloud-test.git/config-server

0 0
原创粉丝点击