在上一篇文章中介绍了Zookeeper作为注册中心使用,在这篇文章中将介绍Zookeeper作为配置中心的使用,废话不多说,直接上代码 。
相关依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.4.5</version><relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>zkdemo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>zkdemo</name> <description>Demo project for Spring Boot</description> <properties><java.version>1.8</java.version><spring-cloud.version>2020.0.2</spring-cloud.version> </properties> <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-zookeeper-config</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency> </dependencies> <dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies> </dependencyManagement> <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins> </build></project>配置文件application.ymlspring:application:name: zkdemoprofiles:active: devcloud:zookeeper:# Zookeeper服务器地址,集群使用逗号分隔connect-string: localhost:2181# 从Zookeeper中导入配置数据config:import: 'optional:zookeeper:'server:port: 8005在Zookeeper中创建配置节点和数据创建配置根节点/config:
[zk: localhost:2181(CONNECTED) 3] create /configCreated /config创建全局配置节点/config/application,/config/application节点下的配置所有服务都能使用 。
[zk: localhost:2181(CONNECTED) 4] create /config/applicationCreated /config/application【6 Zookeeper系列:使用Zookeeper作为配置中心(zookeeper什么意思)】添加全局配置nickname1:
[zk: localhost:2181(CONNECTED) 5] create /config/application/nickname1 布禾Created /config/application/nickname1创建zkdemo服务dev环境的配置节点/config/zkdemo,dev,该节点的配置只能被特定服务的特定环境使用,当该节点的配置和全局配置冲突时,优先使用该节点的配置:
[zk: localhost:2181(CONNECTED) 6] create /config/zkdemo,devCreated /config/zkdemo,dev添加zkdemo服务dev环境配置nickname2:
[zk: localhost:2181(CONNECTED) 7] create /config/zkdemo,dev/nickname2 buheCreated /config/zkdemo,dev/nickname2最终结构如下:

文章插图
测试类
@SpringBootTestclass ZkdemoApplicationTests { @Value("${nickname1}") private String nickname1; @Value("${nickname2}") private String nickname2; @Test public void testZkConfig() {System.out.println("从application全局配置中读取配置:nickname1=" + nickname1);System.out.println("从zkdemo服务配置中读取配置:nickname2=" + nickname2); }}输出结果:从application全局配置中读取配置:nickname1=布禾从zkdemo服务配置中读取配置:nickname2=buhe自定义Zookeeper配置如果不想使用默认的Zookeeper配置,可以在application.yml更改:spring:cloud:zookeeper:config:enabled: trueroot: configurationdefault-context: appsprofile-separator: '::'enabled:将该值设置为false将禁用Zookeeper配置,默认true 。root:配置根节点名称,默认为config 。
default-context:全局配置节点名称,默认为application 。
profile-separator:设置服务名和环境名称之间的分隔符,默认为英文逗号 。
- 春季老年人吃什么养肝?土豆、米饭换着吃
- 三八妇女节节日祝福分享 三八妇女节节日语录
- 老人谨慎!选好你的“第三只脚”
- 校方进行了深刻的反思 青岛一大学生坠亡校方整改校规
- 脸皮厚的人长寿!有这特征的老人最长寿
- 长寿秘诀:记住这10大妙招 100%增寿
- 春季老年人心血管病高发 3条保命要诀
- 眼睛花不花要看四十八 老年人怎样延缓老花眼
- 香槟然能防治老年痴呆症? 一天三杯它人到90不痴呆
- 老人手抖的原因 为什么老人手会抖
