|
对于最新稳定版,请使用Spring Cloud Zookeeper 5.0.0! |
带 Zookeeper 的分布式配置
Zookeeper 提供了一个层级命名空间,允许客户端存储任意数据,例如配置数据。春云Zookeeper
配置是配置服务器和客户端的替代方案。
配置在特殊的“引导”阶段加载到 Spring 环境中
阶段。配置存储在/config默认命名空间。倍数地产来源实例是根据应用程序名称和激活状态创建的
配置文件,以模拟 Spring Cloud 配置中解析属性的顺序。例如,一个
应用名称为testApp以及开发轮廓具有以下性质
为此创建的资料来源:
-
config/testApp,dev -
config/testApp -
config/application,dev -
配置/应用
最具体的属性来源在顶部,最不具体的在底部。
在配置/应用命名空间适用于所有使用
配置用Zookeeper。在config/testApp命名空间是可用的
仅对所命名服务实例testApp.
配置目前在应用程序启动时读取。发送HTTP发布请求/刷新导致配置被重新加载。观察配置
命名空间(Zookeeper 支持)也可用。
激活
包括对 的依赖org.springframework.cloud:spring-cloud-starter-zookeeper-config使
自动配置,可以设置 Spring Cloud Zookeeper 配置。
| 使用 Zookeeper 3.4 版本时需要更改 你描述的依赖方式。 |
Spring Boot Config Data Import
Spring Boot 2.4 引入了一种通过spring.config.import财产。现在这已经是从 Zookeeper 获取配置的默认方式。
要选择性地连接 Zookeeper 进行配置,请在 application.properties 中设置以下内容:
spring.config.import=optional:zookeeper:
它会连接到默认位置“localhost:2181”的Zookeeper。移除自选:如果 Zookeeper 无法连接 Zookeeper,前缀会导致配置失败。要更改Zookeeper配置的连接属性,请设置以下任一。spring.cloud.zookeeper.connect-string或者将连接字符串添加到spring.config.import例如,Spring.config.import=optional:Zookeeper:MyHost:2818.导入属性中的位置优先于连接串财产。
Zookeeper配置会尝试从四个自动上下文加载值,基于spring.cloud.zookeeper.config.name(默认值为spring.application.name性质)和spring.cloud.zookeeper.config.default-context(默认为应用).如果你想指定上下文而不是使用计算出来的上下文,你可以把这些信息添加到spring.config.import陈述。
spring.config.import=optional:zookeeper:myhost:2181/contextone;/context/two
这将选择性地加载从以下的配置。/contextone和/上下文/二.
一个启动文件(属性或 yaml)对于 Spring Boot 配置数据方法的导入方式spring.config.import. |
定制
Zookeeper配置可通过设置以下属性进行自定义:
spring:
cloud:
zookeeper:
config:
enabled: true
root: configuration
defaultContext: apps
profileSeparator: '::'
-
启用:将此值设为false关闭了Zookeeper配置。 -
根: 设置配置值的基础命名空间。 -
默认上下文:为所有应用程序设置名称。 -
profileSepacator: 设置用于分隔配置文件名称的分隔符值 带有剖面的房产来源。
如果你已经设置了spring.cloud.bootstrap.enabled=true或Spring.config.use-legacy-processing=true,或包含Spring-cloud-starter-bootstrap那么上述数值需要被置于bootstrap.yml而不是application.yml. |
访问控制列表(ACL)
您可以通过调用addAuthInfo方法策展框架豆。实现这一点的一种方法是提供你自己的策展框架豆子,如下例所示:
@BoostrapConfiguration
public class CustomCuratorFrameworkConfig {
@Bean
public CuratorFramework curatorFramework() {
CuratorFramework curator = new CuratorFramework();
curator.addAuthInfo("digest", "user:password".getBytes());
return curator;
}
}
请查阅 ZookeeperAutoConfiguration 类,了解策展框架豆豆的默认配置。
或者,你也可以根据现有课程添加你在课程中的资历策展框架豆子,如下例所示:
@BoostrapConfiguration
public class DefaultCuratorFrameworkConfig {
public ZookeeperConfig(CuratorFramework curator) {
curator.addAuthInfo("digest", "user:password".getBytes());
}
}
这种豆子的制作必须在加速敲击阶段完成。你可以注册
配置类通过注释@BootstrapConfiguration并将它们包含在你设置的逗号分隔列表中,
的值org.springframework.cloud.bootstrap.BootstrapConfiguration财产在resources/META-INF/spring.factories文件,如下例所示:
org.springframework.cloud.bootstrap.BootstrapConfiguration=\ my.project.CustomCuratorFrameworkConfig,\ my.project.DefaultCuratorFrameworkConfig