溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在SpringCloud中將Zookeeper作為配置中心

發布時間:2021-04-30 14:52:10 來源:億速云 閱讀:254 作者:Leah 欄目:開發技術

本篇文章給大家分享的是有關怎么在SpringCloud中將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 /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

最終結構如下:

怎么在SpringCloud中將Zookeeper作為配置中心

測試類

@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作為配置中心,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女