Config Server高可用
Posted linjiqin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Config Server高可用相关的知识,希望对你有一定的参考价值。
一 简介
构建高可用的Config Server集群,包括Config Server的高可用,以及依赖Git仓库的高可用。
二 Git仓库的高可用
由于配置的内容都存储在Git仓库中,所以要想实现Config Server的高可用,必须有一个高可用的Git仓库。有两种方式可以实现Git仓库的高可用。
1 使用第三方的Git仓库:这种方式非常简单,可使用例如Github、BitBucket、[email protected]、Coding等提供的仓库托管服务,这种服务本身就已经实现了高可用。
2 自建Git仓库管理系统:使用第三方服务的方式虽然省去了很多麻烦,但是很多场景下,倾向于自建Git仓库管理系统。此时就需要保证自建Git的高可用。
三 Config Server注册到Eureka Server上
a、mima-cloud-config-server服务启动两个节点,分为为6063、6066
b、mima-cloud-config-client服务bootstrap.yml配置
1、单机bootstrap.yml配置:
#注意config-client的配置需要放到bootstrap.yml中
management:
security:
enabled: false
spring:
application:
name: mima-cloud-config-client
cloud:
consul:
discovery:
instanceId: ${spring.application.name}:${server.port}
host: localhost
port: 8500
config:
enabled: true #falseu7981u7528Consulu914du7f6euff0cu9ed8u8ba4true
format: YAML # u8868u793aconsulu4e0au9762u6587u4ef6u7684u683cu5f0f u6709u56dbu79cd YAML PROPERTIES KEY-VALUE FILES
#data-key: configuration #u8868u793aconsulu4e0au9762u7684KEYu503c(u6216u8005u8bf4u6587u4ef6u7684u540du5b57) u9ed8u8ba4u662fdata
data-key: data #u8868u793aconsulu4e0au9762u7684KEYu503c(u6216u8005u8bf4u6587u4ef6u7684u540du5b57) u9ed8u8ba4u662fdata
#prefixu8bbeu7f6eu914du7f6eu503cu7684u57fau672cu6587u4ef6u5939
#defaultContextu8bbeu7f6eu6240u6709u5e94u7528u7a0bu5e8fu4f7fu7528u7684u6587u4ef6u5939u540du79f0
#profileSeparatoru8bbeu7f6eu7528u4e8eu4f7fu7528u914du7f6eu6587u4ef6u5728u5c5eu6027u6e90u4e2du5206u9694u914du7f6eu6587u4ef6u540du79f0u7684u5206u9694u7b26u7684u503c
config:
#安全认证设置用户名密码
uri: http://localhost:6063/ #config-server访问地址
#指定profile,对应config-server所获取的配置文件中的{profile}
#配置文件的几种写法
#{application}-{profile}.yml
#{application}-{profile}.properties
#{application}/{profile}.yml
profile: prod #相当于在远程git项目找到application-prod.properties文件
label: master
2、高可用bootstrap.yml配置:
#注意config-client的配置需要放到bootstrap.yml中
management:
security:
enabled: false
spring:
application:
name: mima-cloud-config-client
cloud:
consul:
discovery:
instanceId: ${spring.application.name}:${server.port}
host: localhost
port: 8500
config:
enabled: true #falseu7981u7528Consulu914du7f6euff0cu9ed8u8ba4true
format: YAML # u8868u793aconsulu4e0au9762u6587u4ef6u7684u683cu5f0f u6709u56dbu79cd YAML PROPERTIES KEY-VALUE FILES
#data-key: configuration #u8868u793aconsulu4e0au9762u7684KEYu503c(u6216u8005u8bf4u6587u4ef6u7684u540du5b57) u9ed8u8ba4u662fdata
data-key: data #u8868u793aconsulu4e0au9762u7684KEYu503c(u6216u8005u8bf4u6587u4ef6u7684u540du5b57) u9ed8u8ba4u662fdata
#prefixu8bbeu7f6eu914du7f6eu503cu7684u57fau672cu6587u4ef6u5939
#defaultContextu8bbeu7f6eu6240u6709u5e94u7528u7a0bu5e8fu4f7fu7528u7684u6587u4ef6u5939u540du79f0
#profileSeparatoru8bbeu7f6eu7528u4e8eu4f7fu7528u914du7f6eu6587u4ef6u5728u5c5eu6027u6e90u4e2du5206u9694u914du7f6eu6587u4ef6u540du79f0u7684u5206u9694u7b26u7684u503c
config:
profile: prod
label: master
discovery:
# 默认false,设为true表示使用注册中心中的configserver配置而不自己配置configserver的uri
enabled: true
# 指定config server在服务发现中的serviceId,默认为:configserver
serviceId: mima-cloud-config-server
3、获取配置文件属性
@RestController
@RefreshScope
public class ConfigClientController {
@Value("${env}")
private String env;
@Value("${password}")
private String password;
@Value("${username}")
private String username;
@GetMapping("/config/profile")
public String hello() {
return this.env+","+this.password+","+this.username;
}
}
http://localhost:6062/config/profile
以上是关于Config Server高可用的主要内容,如果未能解决你的问题,请参考以下文章
第五篇 高可用配置中心config-server(SVN版)
Spring Cloud之 Config Server 的高可用配置
SpringCloud教程七:Config(高可用分布式配置中心)
SpringCloud教程七:Config(高可用分布式配置中心)
业余草 SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)(Finchley版本)