Spring Cloud Zookeeper 中心化配置文件

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 为什么要使用zookeeper来管理项目配置? 每当我们的项目需要更改配置文件的时候,我们都会重新打包并重新部署项目。如果一个项目还好说,如果是分布式的服务,那么我们需要停掉左右机器上的服务,上传新的包,然后重启。

为什么要使用zookeeper来管理项目配置?

每当我们的项目需要更改配置文件的时候,我们都会重新打包并重新部署项目。如果一个项目还好说,如果是分布式的服务,那么我们需要停掉左右机器上的服务,上传新的包,然后重启。如果是10台,如果是100台如果是1000.......
基于zookeeper配置中心,我们只需要更改zk中相应项目的配置,直接重启服务就可以了,省去了冲洗打包,上传,部署等大量操作。且配置中心化易于管理。
AI 代码解读

准备工作

基于SpringBoot
基于SpringCloud
基于zooKeeper 集群服务
AI 代码解读

假设你是基于SpringBoot开发,因为Spring对zk的集成整合在了SpringCloud的子项目中,所以我们需要引入SpringCloud,点击链接参考官方文档配置你的pom.xml文件,我使用的是目前Dalston SR2这个release。

然后在pom.xml的依赖中引入如下依赖:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zookeeper-config</artifactId>
</dependency>
<!-- zookeeper 依赖的健康检查的jar,所以需要引入actuator这个依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
AI 代码解读

Spring官网对zookeeper这个子项目有个说明,就是项目的配置文件不可以叫application,需要改成bootstrap开头,否则没办法正常读取配置。例如原先叫application.yaml / application.properties,现在改成bootstrap.yaml / bootstrap.properties。

配置ZooKeeper

#ZooKeeper的连接字符串,如果是集群,逗号分隔节点,格式:ip:port[,ip2:port2,.....]
spring.cloud.zookeeper.connect-string = ${ZOOKEEPER_CONNECT_STRING}
#指定zookeeper目录的根目录
spring.cloud.zookeeper.config.root = <ZK_directory>
#启用zk的配置
spring.cloud.zookeeper.config.enabled =  <true | false>
 #定义了你的项目的名称,zk会在你指定的
根目录下寻找以这个项目名命名的目录下的配置
spring.application.name = <Define Name>
AI 代码解读

关于如何在zookeeper下创建目录,并填写配置,请参考其他资料。

举例说明

spring.cloud.zookeeper.config.enabled = true
AI 代码解读

在你指定zookeeper下的根目录,zk会在这个根目录下寻找跟你项目名称相同的文件夹,然后找到其下面的所有配置。
例如指定的根目录root(即/root),项目名称叫project,(即/root/project),上面的配置对应就是 /root/project/spring/cloud/zookeeper/config/enabled这个key,enabled的值是true

启动项目即可

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
Spring从入门到入土(xml配置文件的基础使用方式)
本文详细介绍了Spring框架中XML配置文件的使用方法,包括读取配置文件、创建带参数的构造对象、使用工厂方法和静态方法创建对象、对象生命周期管理以及单例和多例模式的测试。
241 7
Spring从入门到入土(xml配置文件的基础使用方式)
尼恩一键开发环境: vagrant+java+springcloud+redis+zookeeper镜像下载(&制作详解)
尼恩提供了一系列文章,旨在帮助开发者轻松搭建一键开发环境,涵盖Java分布式、高并发场景下的多种技术组件安装与配置。内容包括但不限于Windows和CentOS虚拟机的安装与排坑指南、MySQL、Kafka、Redis、Zookeeper等关键组件在Linux环境下的部署教程,并附带详细的视频指导。此外,还特别介绍了Vagrant这一虚拟环境部署工具,
尼恩一键开发环境: vagrant+java+springcloud+redis+zookeeper镜像下载(&制作详解)
微服务——SpringBoot使用归纳——Spring Boot中的项目属性配置——指定项目配置文件
在实际项目中,开发环境和生产环境的配置往往不同。为简化配置切换,可通过创建 `application-dev.yml` 和 `application-pro.yml` 分别管理开发与生产环境配置,如设置不同端口(8001/8002)。在 `application.yml` 中使用 `spring.profiles.active` 指定加载的配置文件,实现环境快速切换。本节还介绍了通过配置类读取参数的方法,适用于微服务场景,提升代码可维护性。课程源码可从 [Gitee](https://gitee.com/eson15/springboot_study) 下载。
12 0
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— logback.xml 配置文件解析
本文解析了 `logback.xml` 配置文件的详细内容,包括日志输出格式、存储路径、控制台输出及日志级别等关键配置。通过定义 `LOG_PATTERN` 和 `FILE_PATH`,设置日志格式与存储路径;利用 `&lt;appender&gt;` 节点配置控制台和文件输出,支持日志滚动策略(如文件大小限制和保存时长);最后通过 `&lt;logger&gt;` 和 `&lt;root&gt;` 定义日志级别与输出方式。此配置适用于精细化管理日志输出,满足不同场景需求。
11 1
Spring Boot 配置文件总结
Spring Boot 提供全局配置文件 `application.properties` 和 `application.yml`,用于修改自动配置的默认值。前者使用键值对配置,后者使用缩进和冒号。不同环境(开发、测试、生产)可切换配置文件,通过 `spring.profiles.active` 指定。例如,开发环境端口为4790,测试环境为4791,生产环境为4792。配置示例展示了属性、List、Map定义及引用方法。
90 14
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论。
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
使用idea中的Live Templates自定义自动生成Spring所需的XML配置文件格式
本文介绍了在使用Spring框架时,如何通过创建`applicationContext.xml`配置文件来管理对象。首先,在resources目录下新建XML配置文件,并通过IDEA自动生成部分配置。为完善配置,特别是添加AOP支持,可以通过IDEA的Live Templates功能自定义XML模板。具体步骤包括:连续按两次Shift搜索Live Templates,配置模板内容,输入特定前缀(如spring)并按Tab键即可快速生成完整的Spring配置文件。这样可以大大提高开发效率,减少重复工作。
使用idea中的Live Templates自定义自动生成Spring所需的XML配置文件格式
在 Spring 配置文件中配置 Filter 的步骤
【10月更文挑战第21天】在 Spring 配置文件中配置 Filter 是实现请求过滤的重要手段。通过合理的配置,可以灵活地对请求进行处理,满足各种应用需求。还可以根据具体的项目要求和实际情况,进一步深入研究和优化 Filter 的配置,以提高应用的性能和安全性。
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
59 6
如何将Spring Boot + MySQL应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + MySQL应用程序部署到Pivotal Cloud Foundry (PCF)
94 5