SpringCloud使用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中創(chuàng)建配置節(jié)點和數據
創(chuàng)建配置根節(jié)點/config:
[zk: localhost:2181(CONNECTED) 3] create /config Created /config
創(chuàng)建全局配置節(jié)點/config/application,/config/application節(jié)點下的配置所有服務都能使用。
[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
創(chuàng)建zkdemo服務dev環(huán)境的配置節(jié)點/config/zkdemo,dev,該節(jié)點的配置只能被特定服務的特定環(huán)境使用,當該節(jié)點的配置和全局配置沖突時,優(yōu)先使用該節(jié)點的配置:
[zk: localhost:2181(CONNECTED) 6] create /config/zkdemo,dev Created /config/zkdemo,dev
添加zkdemo服務dev環(huán)境配置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:配置根節(jié)點名稱,默認為config。
default-context:全局配置節(jié)點名稱,默認為application。
profile-separator:設置服務名和環(huán)境名稱之間的分隔符,默認為英文逗號。
以上就是SpringCloud使用Zookeeper作為配置中心的示例的詳細內容,更多關于使用Zookeeper作為配置中心的資料請關注腳本之家其它相關文章!
相關文章
MyBatisPlus-QueryWrapper多條件查詢及修改方式
這篇文章主要介紹了MyBatisPlus-QueryWrapper多條件查詢及修改方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06
Springboot如何實現Web系統(tǒng)License授權認證
這篇文章主要介紹了Springboot如何實現Web系統(tǒng)License授權認證,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-05-05

