SpringCloud使用Zookeeper作为配置中心的示例

目录相关依赖配置文件application.yml在Zookeeper中创建配置节点和数据测试类自定义Zookeeper配置

在上一篇文章中介绍了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.yml

spring:  application:    name: zkdemo  profiles:    active: dev  cloud:    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

添加全局配置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;@Testpublic 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: true        root: configuration        default-context: apps        profile-separator: '::'

enabled:将该值设置为false将禁用Zookeeper配置,默认true。

root:配置根节点名称,默认为config。

default-context:全局配置节点名称,默认为application。

profile-separator:设置服务名和环境名称之间的分隔符,默认为英文逗号。

以上就是SpringCloud使用Zookeeper作为配置中心的示例的详细内容,更多关于使用Zookeeper作为配置中心的资料请关注其它相关文章!

没有行李,没有背包,不带电脑更不要手机,

SpringCloud使用Zookeeper作为配置中心的示例

相关文章:

你感兴趣的文章:

标签云: