一 简介
构建高可用的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 #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
原文地址:https://www.cnblogs.com/linjiqin/p/10339420.html
时间: 2024-10-17 11:52:50