SpringCloud使用Zookeeper作为配置中心的示例
作者:布禾 发布时间:2023-08-03 12:30:51
标签: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 /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:设置服务名和环境名称之间的分隔符,默认为英文逗号。
来源:https://www.cnblogs.com/seve/archive/2021/04/30/14708719.html
0
投稿
猜你喜欢
- 一,在一个公共类里创建一个公共方法,然后需要验证的页面都调用这个方法 //在此例子中,就是在入口函数里调用CheckLogin()
- 首先备注一下JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。为 J2EE
- 中介者模式面向对象设计鼓励将行为分布到各个对象中, 这种分布可能会导致对象间有许多连接. 在最坏的情况下, 每一个对象都需要知道其他所有对象
- Caffeine和Spring Boot集成Caffeine是使用Java8对Guava缓存的重写版本,在Spring Boot 2.0中将
- 推送系统作为通用的组件,存在的价值主要有以下几点会被多个业务项目使用,推送系 * 立维护可降低维护成本推送系统一般都是调用三方api进行推送,
- 本文将带领大家使用基于JAX-RS REST风格的实现Jersey来上传文件到服务器制定的文件夹,如果是图片并读取显示出该图片。准备工作:准
- 之前在Spring Boot启动过程(二)提到过createEmbeddedServletContainer创建了内嵌的Servlet容器,
- 界面效果图如下:报表界面说下关键代码 需要开启 Windows Management Instrumentation服务(默认已经
- 23种设计模式第十四篇:java迭代器模式定义:提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。类型:行为类模式类图:如
- 本文实例为大家分享了shader实现基于世界坐标的贴图置换效果。效果如下:设置面板如下:可在面板上设置切换方向,与切换对象,及其切换速度。s
- 本文实例讲述了Android程序美化之自定义ListView背景的方法。分享给大家供大家参考,具体如下:在Android中,ListView
- 一、基本RPC框架简介在分布式计算中,远程过程调用(Remote Procedure Call,缩写 RPC)允许运行于一台计算机的程序调用
- 1、使用第三方类库 HtmlAgilityPack官方网址:https://html-agility-pack.net/?z=codeple
- 本文实例讲述了Android获取手机屏幕大小的方法。分享给大家供大家参考,具体如下:这里主要用了三个对象TextView ,Button ,
- 一、先上效果图借用某东App的效果,如下。折叠时的效果:展开时的效果:二、ChipGroup和ChipchipGroup和chip之前写过博
- 每当想找哪个运算符优先级高时,很多时候总是想找的就没有,真让人气愤!现在,终于有个我个人觉得非常全的,分享给大家,欢迎拍砖!C语言运算符优先
- 这篇文章介绍使用设计模式中的策略模式和委托来解决多个IfElse判断语句和Switch语句,这种替换方式在其他语言也一样可以做到,比如PHP
- json格式的字符串与对象的互相转换Jackson 简介Jackson是一个简单基于Java应用库,Jackson可以轻松的将Java对象转
- 1.前言开发过程中,讲一个对象的属性和值赋值到另一个对象上,大量使用了get、set方法,看着很臃肿,思考下肯定不只有我有这种想法,所以技术
- Comparator是个接口,可重写compare()及equals()这两个方法,用于比价功能;如果是null的话,就是使用元素的默认顺序