首页 > 其他分享 >SpringCloud之Zookeeper作为配置中心

SpringCloud之Zookeeper作为配置中心

时间:2023-05-12 20:45:18浏览次数:40  
标签:配置 producer SpringCloud Zookeeper dev myValue spring config

Zookeeper提供了一个分层的命名空间,让客户端可以存储任意数据,例如配置数据。Spring Cloud Zookeeper Config是Config Server和Client的替代方案。在特殊的“bootstrap”阶段,配置被加载到Spring环境中。默认情况下,配置存储在/config命名空间中。将根据应用程序的名称和活动配置文件创建多个PropertySource实例,以模拟解析属性的Spring Cloud Config顺序。例如,一个名为testApp、具有dev配置文件的应用程序为其创建了以下属性源:

config/testApp,dev

config/testApp

config/application,dev

config/application

最具体的属性源在顶部,最不具体的在底部。config/application命名空间中的属性应用于所有使用zookeeper进行配置的应用程序。config/testApp命名空间中的属性仅可用于名为testApp的服务实例。通用配置放在config/application,testApp服务私有的配置放在config/testApp下。

 

要使用zookeeper作为配置中心,只需加入依赖:

  <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-zookeeper-config</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-bootstrap</artifactId>
    </dependency>

spring-cloud-starter-bootstrap依赖是为了使用bootstrap.properties。配置bootstrap.properties:

server.port=8002

spring.application.name=producer

spring.cloud.zookeeper.connect-string=localhost:2181

spring.profiles.active=dev

连接上zookeeper服务后,运行create /config/producer,dev创建producer,dev节点,producer是服务名,dev是激活环境,以逗号分隔。继续运行create /config/producer,dev/myValue 123在producer服务下加入配置myValue=123。

 

在Producer的Controller加入:

@Value("${myValue}")
private String myValue;

@RequestMapping("/myValue")
public String getMyValue(){
    return myValue;
}

启动GatewayServer和Producer,访问http://localhost:8500/producer/myValue,看到123。

 

连接Zookeeper服务后,运行set /config/producer,dev/myValue 12345改变myValue的值为12345。访问http://localhost:8500/producer/myValue,还是看到123。更改配置后看到的是原来的配置。

 

在Controller上加@RefreshScope,重启,访问http://localhost:8500/producer/myValue,看到12345。运行set /config/producer,dev/myValue 123456改变myValue的值为123456,访问http://localhost:8500/producer/myValue,看到123456。加上@RefreshScope后修改配置会自动刷新。

 

在bootstrap.properties增加以下配置:

spring.cloud.zookeeper.config.root=configuration
spring.cloud.zookeeper.config.defaultContext=apps
spring.cloud.zookeeper.config.profileSeparator=::

root是改变存储配置的根节点。defaultContext是配置所有服务的配置的根节点。profileSeparator是服务名跟环境的分隔符。重新启动Producer发现报错,提示

Could not resolve placeholder 'myValue' in value "${myValue}"

找不到配置myValue。

 

连接上Zookeeper后运行create /configuration创建配置根节点。继续运行create /configuration/producer::dev创建Producer服务,运行create /configuration/producer::dev/myValue 456设置myValue的值为456。启动Producer并访问http://localhost:8500/producer/myValue,看到456

标签:配置,producer,SpringCloud,Zookeeper,dev,myValue,spring,config
From: https://www.cnblogs.com/shigongp/p/17396199.html

相关文章

  • Apache2.2.11+Tomcat6.0 集群配置 总结
    最近公司需要配置集群在网上找了很多的资料都没有怎么个成功配合网上的资料和一些博客总结如下:1负载均衡的概念:就是apache将客户请求均衡的分给tomcat1,tomcat2....去处理2环境说明(Apache端口:80不需出来Apache端口:8080在Apache安装bin目录下(dos下......
  • Spring实现javaConfig配置
    1、新建一个config的java文件设置注解为Configuration:2、然后在test的执行文件里面进行注解形式的运行ApplicaitonContextcontext=newAnnocationConfigAppication(userConfig.class);3、Configuration这个注解代表了之前的xml的配置文件的意思,也算是将配置文件化成了con......
  • 关于Ubuntu静态网络配置以及SSH配置
    1、静态网络配置a、查找netplan目录下的默认配置文件,后缀名为.yaml,b、ifconfg查看当前网卡以及IP地址(我的是ens33192.168.138.137)c、route-n查看当前网关d、windows查看无线网/网络的DNS服务器f、进入root模式下,vim/etc/netplan/01-network-manager-a......
  • seafile配置
    编辑配置文件:vim/opt/seafile/conf/seahub_settings.py以下配置都在这个py文件编辑添加。 配置在线officeEnableOnlyOfficeENABLE_ONLYOFFICE=TrueVERIFY_ONLYOFFICE_CERTIFICATE=FalseONLYOFFICE_APIJS_URL='http://192.168.0.253:8088/web-apps/apps/api/documen......
  • SwitchHosts 一款管理本地 host 文件配置的工具,支持一键切换不同环境配置的 host 文件
    简介Hosts相关的小工具着实不少,大家需求最多的肯定是hosts切换工具了。SwitchHosts!是一款可以方便你管理和一键切换多个hosts方案的免费开源工具,跨平台支持Windows、macOS和Linux系统。软件获取➤https://www.hereitis.cn/articleDetails/1269功能介绍SwitchHos......
  • 西门子1500PLC程序 宁德C公司 32组件涂胶PLC程序,硬件配置:1511
    西门子1500PLC程序宁德C公司32组件涂胶PLC程序,硬件配置:1511PLC,三个库卡机器人,一个个PN-COUPLER上下游通讯,滚筒电机,气缸,MES交互,康耐视相机扫码,四轴雅马哈机器人上料,台达伺服,涂胶机,程序完整西门子系列实际项目程序+触摸屏程序+新能源锂电设备故障记录功能,工位CT时间,历史报警,产量统......
  • 转resin安全配置
    1.版本:应该从Resin官方提供的下载页面下载最新稳定版本,注意不要下载beta版本。Resin官网地址为:http://www.caucho.com/download/2.删除默认页面:Resin安装好后,存在默认的示例页面、文档及管理页面:需要删除以下文件及目录:%resin%/webapps/ROOT/index.jsp%resin%/doc/r......
  • django系列-git远程仓库配置
    一、本地配置0.为什么要设置本地配置有一些不希望别人同步代码时看到的配置,可以放在local_settings.py中,通过配置gitignore实现1.创建gitee仓库 网站手动创建2.gitignore配置在项目中创建一个.gitignore的文件,在里面写上文件名或文件夹,可以git忽略一些文件,不要进行版本控......
  • VMware Aria Automation Config 8.12 - Aria Automation 的软件配置管理与安全性
    VMwareAriaAutomationConfig8.12-AriaAutomation的软件配置管理与安全性请访问原文链接:https://sysin.org/blog/vmware-aria-automation-config/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgAriaAutomation的软件配置管理与安全性AriaAutomationConfi......
  • 博图SCL+LAD之原创程序。 硬件配置S7-12143个CM1241 RS2321个CB1241 RS
    博图SCL+LAD之原创程序。硬件配置S7-1214?3个CM1241RS232?1个CB1241RS485。以下功能只是一部分,占总程序25%,请注意。以下用SCL功能实现:1:预设五组配方,包含条形码编码、光源亮度、板件厚度等信息,单个配方数量20,总共100个配方(配方数可调整)。2:配方存入、读取扫码器数据、设置光源亮度......