Config Server高可用
阿新 • • 發佈:2019-01-30
nbsp tex 兩種 訪問 for 管理系 註意 enabled alt
一 簡介
構建高可用的Config Server集群,包括Config Server的高可用,以及依賴Git倉庫的高可用。
二 Git倉庫的高可用
由於配置的內容都存儲在Git倉庫中,所以要想實現Config Server的高可用,必須有一個高可用的Git倉庫。有兩種方式可以實現Git倉庫的高可用。
1 使用第三方的Git倉庫:這種方式非常簡單,可使用例如Github、BitBucket、git@osc、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 #false\u7981\u7528Consul\u914d\u7f6e\uff0c\u9ed8\u8ba4true
format: YAML # \u8868\u793aconsul\u4e0a\u9762\u6587\u4ef6\u7684\u683c\u5f0f \u6709\u56db\u79cd YAML PROPERTIES KEY-VALUE FILES
#data-key: configuration #\u8868\u793aconsul\u4e0a\u9762\u7684KEY\u503c(\u6216\u8005\u8bf4\u6587\u4ef6\u7684\u540d\u5b57) \u9ed8\u8ba4\u662fdata
data-key: data #\u8868\u793aconsul\u4e0a\u9762\u7684KEY\u503c(\u6216\u8005\u8bf4\u6587\u4ef6\u7684\u540d\u5b57) \u9ed8\u8ba4\u662fdata
#prefix\u8bbe\u7f6e\u914d\u7f6e\u503c\u7684\u57fa\u672c\u6587\u4ef6\u5939
#defaultContext\u8bbe\u7f6e\u6240\u6709\u5e94\u7528\u7a0b\u5e8f\u4f7f\u7528\u7684\u6587\u4ef6\u5939\u540d\u79f0
#profileSeparator\u8bbe\u7f6e\u7528\u4e8e\u4f7f\u7528\u914d\u7f6e\u6587\u4ef6\u5728\u5c5e\u6027\u6e90\u4e2d\u5206\u9694\u914d\u7f6e\u6587\u4ef6\u540d\u79f0\u7684\u5206\u9694\u7b26\u7684\u503c
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 #false\u7981\u7528Consul\u914d\u7f6e\uff0c\u9ed8\u8ba4true
format: YAML # \u8868\u793aconsul\u4e0a\u9762\u6587\u4ef6\u7684\u683c\u5f0f \u6709\u56db\u79cd YAML PROPERTIES KEY-VALUE FILES
#data-key: configuration #\u8868\u793aconsul\u4e0a\u9762\u7684KEY\u503c(\u6216\u8005\u8bf4\u6587\u4ef6\u7684\u540d\u5b57) \u9ed8\u8ba4\u662fdata
data-key: data #\u8868\u793aconsul\u4e0a\u9762\u7684KEY\u503c(\u6216\u8005\u8bf4\u6587\u4ef6\u7684\u540d\u5b57) \u9ed8\u8ba4\u662fdata
#prefix\u8bbe\u7f6e\u914d\u7f6e\u503c\u7684\u57fa\u672c\u6587\u4ef6\u5939
#defaultContext\u8bbe\u7f6e\u6240\u6709\u5e94\u7528\u7a0b\u5e8f\u4f7f\u7528\u7684\u6587\u4ef6\u5939\u540d\u79f0
#profileSeparator\u8bbe\u7f6e\u7528\u4e8e\u4f7f\u7528\u914d\u7f6e\u6587\u4ef6\u5728\u5c5e\u6027\u6e90\u4e2d\u5206\u9694\u914d\u7f6e\u6587\u4ef6\u540d\u79f0\u7684\u5206\u9694\u7b26\u7684\u503c
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高可用