Spring Cloud Zookeeper 中心化配置文件

本文涉及的产品
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 为什么要使用zookeeper来管理项目配置? 每当我们的项目需要更改配置文件的时候,我们都会重新打包并重新部署项目。如果一个项目还好说,如果是分布式的服务,那么我们需要停掉左右机器上的服务,上传新的包,然后重启。

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

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

准备工作

基于SpringBoot
基于SpringCloud
基于zooKeeper 集群服务

假设你是基于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>

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>

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

举例说明

spring.cloud.zookeeper.config.enabled = true

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

启动项目即可

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
相关文章
|
5月前
|
Java Spring
Spring boot 运行服务jar外配置配置文件方式总结
Spring boot 运行服务jar外配置配置文件方式总结
960 0
|
2月前
|
XML Java 数据格式
Spring从入门到入土(xml配置文件的基础使用方式)
本文详细介绍了Spring框架中XML配置文件的使用方法,包括读取配置文件、创建带参数的构造对象、使用工厂方法和静态方法创建对象、对象生命周期管理以及单例和多例模式的测试。
97 7
Spring从入门到入土(xml配置文件的基础使用方式)
|
2月前
|
Java API Spring
在 Spring 配置文件中配置 Filter 的步骤
【10月更文挑战第21天】在 Spring 配置文件中配置 Filter 是实现请求过滤的重要手段。通过合理的配置,可以灵活地对请求进行处理,满足各种应用需求。还可以根据具体的项目要求和实际情况,进一步深入研究和优化 Filter 的配置,以提高应用的性能和安全性。
|
2月前
|
Java 测试技术 Spring
springboot学习三:Spring Boot 配置文件语法、静态工具类读取配置文件、静态工具类读取配置文件
这篇文章介绍了Spring Boot中配置文件的语法、如何读取配置文件以及如何通过静态工具类读取配置文件。
63 0
springboot学习三:Spring Boot 配置文件语法、静态工具类读取配置文件、静态工具类读取配置文件
|
3月前
|
消息中间件 NoSQL 安全
(转)Spring Boot加载 不同位置的 application.properties配置文件顺序规则
这篇文章介绍了Spring Boot加载配置文件的顺序规则,包括不同位置的application.properties文件的加载优先级,以及如何通过命令行参数或环境变量来指定配置文件的名称和位置。
|
4月前
|
XML Java 数据格式
Spring Cloud全解析:注册中心之zookeeper注册中心
使用ZooKeeper作为Spring Cloud的注册中心无需单独部署服务器,直接利用ZooKeeper服务端功能。项目通过`spring-cloud-starter-zookeeper-discovery`依赖实现服务注册与发现。配置文件指定连接地址,如`localhost:2181`。启动应用后,服务自动注册到ZooKeeper的`/services`路径下,形成临时节点,包含服务实例信息。
325 3
|
5月前
|
负载均衡 Java Spring
Spring cloud gateway 如何在路由时进行负载均衡
Spring cloud gateway 如何在路由时进行负载均衡
517 15
|
4月前
|
Java Spring 传感器
AI 浪潮席卷,Spring 框架配置文件管理与环境感知,为软件稳定护航,你还在等什么?
【8月更文挑战第31天】在软件开发中,配置文件管理至关重要。Spring框架提供强大支持,便于应对不同环境需求,如电商项目的开发、测试与生产环境。它支持多种格式的配置文件(如properties和YAML),并能根据环境加载不同配置,如数据库连接信息。通过`@Profile`注解可指定特定环境下的配置生效,同时支持通过命令行参数或环境变量覆盖配置值,确保应用稳定性和可靠性。
65 0
|
5月前
|
Java Spring
spring cloud gateway在使用 zookeeper 注册中心时,配置https 进行服务转发
spring cloud gateway在使用 zookeeper 注册中心时,配置https 进行服务转发
115 3
|
5月前
|
消息中间件 存储 负载均衡
zookeeper 特点、使用场景及安装,配置文件解析
zookeeper 特点、使用场景及安装,配置文件解析
78 2