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

网友投稿 241 2023-01-18

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

在上一篇文章中介绍了Zookeeper作为注册中心使用,在这篇文章中将介绍Zookeeper作为配置中心的使用,废话不多说,直接上代码。

相关依赖

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

org.springframework.boot

spring-boot-starter-parent

2.4.5

com.example

zkdemo

0.0.1-SNAPSHOT

zkdemo

Demo project for Spring Boot

1.8

2020.0.2

org.springframework.boot

spring-boot-starter-web

org.springframework.cloud

spring-cloud-starter-zookeeper-config

org.springframework.boot

spring-boot-starter-test

test

spring-cloud-dependencies

${spring-cloud.version}

pom

import

org.springframework.boot

spring-boot-maven-plugin

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

org.springframework.boot

spring-boot-starter-parent

2.4.5

com.example

zkdemo

0.0.1-SNAPSHOT

zkdemo

Demo project for Spring Boot

1.8

2020.0.2

org.springframework.boot

spring-boot-starter-web

org.springframework.cloud

spring-cloud-starter-zookeeper-config

org.springframework.boot

spring-boot-starter-test

test

spring-cloud-dependencies

${spring-cloud.version}

pom

import

org.springframework.boot

spring-boot-maven-plugin

配置文件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 /config

Created /config

创建全局配置节点/config/application,/config/application节点下的配置所有服务都能使用。

[zk: localhost:2181(CONNECTED) 4] create /config/application

Created /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,dev

Created /config/zkdemo,dev

添加zkdemo服务dev环境配置nickname2:

[zk: localhost:2181(CONNECTED) 7] create /config/zkdemo,dev/nickname2 buhe

Created /config/zkdemo,dev/nickname2

最终结构如下:

测试类

@SpringBootTest

class 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: true

root: configuration

default-context: apps

profile-separator: '::'

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

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

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

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

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java基础之TreeMap详解
下一篇:Spring/Spring Boot 中优雅地做参数校验拒绝 if/else 参数校验
相关文章

 发表评论

暂时没有评论,来抢沙发吧~