作用
分布式系统中,服务数量比较多,服务有大量的配置文件,文件可以统一管理,提高效率。配置中心是分布式不可取少的一部分。SpringCloud原生支持的配置中心有spring cloud config。分为客户端和服务端;支持多种文件存储;
分为客户端和服务端两部分
服务端:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
客户端:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
客户端使用
客户端使用@refreshScope对配置类或者引入@Value值的类进行绑定;可使用API接口http://ip:port/refresh进行刷新。
配置存储
支持Git、SVN或者本地存储、也可以对接到mongo进行存储,尤其对于以yml为主的配置文件。
1.git
spring.cloud.config.server.git.searchPaths:配置仓库路径
spring.cloud.config.label:配置仓库的分支(可略)
spring.cloud.config.server.git.username:访问git仓库的用户名
spring.cloud.config.server.git.password:访问git仓库的用户密码
2.svn
<dependency>
<groupId>org.tmatesoft.svnkit</groupId>
<artifactId>svnkit</artifactId>
</dependency>
配置
cloud:
config:
label: src
enabled: true
server:
svn:
uri: http://172.0.0.9/MS/MS/cloudConfig
default-label: cloudConfig
username: xxx
password: xxx
profile:
active: subversion
3.mongo
使用spring-data-mongo提供的功能,
spring:
data:
mongodb:
uri: mongodb://saasp:saasp@10.16.8.93:27017/cloudconfig
##mongodb副本集,用逗号隔开即可。
高可用
配置中心在线上需要做高可用,需要注册到注册中心。高可用主要通过serviceId实现,开启发现功能,配置对应的服务名称。
spring:
cloud:
config:
name: sdk-test
label: master
profile: dev
# uri: http://localhost:1234 (非高可用)
discovery:
enabled: true(默认是false,需要开启)
serviceId: saasp-configctr
还需要加上注册中心的一些配置
eureka:
instance:
instance-id: ${spring.cloud.client.ipAddress}:${server.port}
prefer-ip-address: true
client:
serviceUrl:
defaultZone: http://xxxx:1111/eureka/,http://yyyy:1111/eureka/
uri 使用
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
非bus流程
1.使用工具或者其他界面修改参数
image.png
2.执行对应服务的refresh接口
网友评论