Open woshikid opened 2 years ago
POM
<!-- 默认已包含Spring Cloud LoadBalancer --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId> </dependency>
自定义配置
spring: cloud: zookeeper: connect-string: localhost:2181 # Zookeeper地址(默认值) discovery: root: /services # 默认注册到/services instance-host: ${spring.cloud.client.ip-address} # 使用IP而不是hostname #instance-ssl-port: ${server.port} # 注册为https服务
使用DiscoveryClient
@Autowired private DiscoveryClient discoveryClient; List<ServiceInstance> serviceInstances = discoveryClient.getInstances(springApplicationName); String url = serviceInstances.get(0).getUri().toString();
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zookeeper-config</artifactId> </dependency>
创建配置信息(zkCli)
create /config create /config/test # 多层目录形式,info.app.name=testApp create /config/test/info create /config/test/info/app create /config/test/info/app/name "testApp" # 单层目录形式,优先级低于多层目录形式 create /config/test/info.app.name "testApp" # profile配置 create /config/test,dev create /config/test,dev/info.app.name "testApp" # 全局配置 create /config/application create /config/application/info.app.name "testApp"
spring: config: import: "optional:zookeeper:localhost:2181" #import: "optional:zookeeper:" # 使用spring.cloud.zookeeper.connect-string #import: "optional:zookeeper:localhost:2181/path/to/test;/path/to/test-dev" # 仅从指定路径获取配置(路径不支持逗号) cloud: zookeeper: #connect-string: localhost:2181 # 优先级低于spring.config.import config: root: config # 默认配置路径为/config name: test # 默认为spring.application.name default-context: application # 全局配置名,默认为application profile-separator: "," # profile分隔符(默认值)
配置优先级 路径优先级与classpath:/同级
classpath:/
1. zookeeper:config/{springApplicationName},{profile} 2. zookeeper:config/application,{profile} # 全局配置 3. classpath:/application-{profile}.yml 4. zookeeper:config/{springApplicationName} 5. zookeeper:config/application # 全局配置 6. classpath:/application.yml
-Dspring.cloud.bootstrap.enabled=true
或引入POM
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency>
自定义配置(bootstrap.yml)
spring: cloud: zookeeper: connect-string: localhost:2181 # 默认为localhost:2181 config: fail-fast: true # 相当于去掉import的optional,默认为true name: test # 或将spring.application.name定义在bootstrap.yml中
配置优先级 高于所有配置,甚至高于测试参数
1. zookeeper:config/{springApplicationName},{profile} 2. zookeeper:config/{springApplicationName} 3. zookeeper:config/application,{profile} # 全局配置 4. zookeeper:config/application # 全局配置
当Zookeeper中的配置信息变更时将自动刷新配置
手动刷新
curl -X POST http://localhost:8080/actuator/refresh
标记bean需要重新加载配置
@RefreshScope
注册中心
POM
自定义配置
使用DiscoveryClient
配置中心
POM
创建配置信息(zkCli)
使用import的方式启动
自定义配置
配置优先级 路径优先级与
classpath:/
同级使用bootstrap的方式启动
或引入POM
自定义配置(bootstrap.yml)
配置优先级 高于所有配置,甚至高于测试参数
刷新配置
当Zookeeper中的配置信息变更时将自动刷新配置
手动刷新
标记bean需要重新加载配置