`

disconf 实践(二)【原创】

阅读更多
因为有些系统的配置文件会随着业务更改,如某些控制开关,当大批量集群时,按照上一篇文章的配置就不够啦,需要做到热加载。
研究了一下,还好,比较简单,只要替换上一篇文章第4步的配置文件(spring-disconf.xml)即可。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:cache="http://www.springframework.org/schema/cache" xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
       http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context-4.0.xsd
       http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
       http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-4.0.xsd">
    
    <!-- 使用disconf必须添加以下配置 -->
	<bean id="disconfMgrBean" class="com.baidu.disconf.client.DisconfMgrBean"
	      destroy-method="destroy">
	    <property name="scanPackage" value="com.baidu"/>
	</bean>
	<bean id="disconfMgrBean2" class="com.baidu.disconf.client.DisconfMgrBeanSecond"
	      init-method="init" destroy-method="destroy">
	</bean>
    
    <!-- 使用托管方式的disconf配置(无代码侵入, 配置更改自动reload)-->
	<bean id="configproperties_disconf"
      class="com.baidu.disconf.client.addons.properties.ReloadablePropertiesFactoryBean">
	    <property name="locations">
	        <list>
	            <value>config.properties</value>
	        </list>
	    </property>
	</bean>
	
	<bean id="propertyConfigurer"
      class="com.baidu.disconf.client.addons.properties.ReloadingPropertyPlaceholderConfigurer">
	    <property name="ignoreResourceNotFound" value="true" />
	    <property name="ignoreUnresolvablePlaceholders" value="true" />
	    <property name="propertiesArray">
	        <list>
	            <ref bean="configproperties_disconf"/>
	        </list>
	    </property>
	</bean>
	
	<!-- 使用托管方式的disconf配置(无代码侵入, 配置更改不会自动reload)-->
	<bean id="configproperties_no_reloadable_disconf"
	      class="com.baidu.disconf.client.addons.properties.ReloadablePropertiesFactoryBean">
	    <property name="locations">
	        <list>
	            <value>redis.properties</value>
	            <value>jdbc.properties</value>
	        </list>
	    </property>
	</bean>
	
	<bean id="propertyConfigurerForProject1"
	      class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
	    <property name="ignoreResourceNotFound" value="true"/>
	    <property name="ignoreUnresolvablePlaceholders" value="true"/>
	    <property name="propertiesArray">
	        <list>
	            <ref bean="configproperties_no_reloadable_disconf"/>
	        </list>
	    </property>
	</bean>
</beans>


其中 config.properties 实现了热加载, jdbc.properties和redis.properties只实现同步,需要重启加载。

当我们在disconf管理端,任意修改一个config.properties的属性,就会在控制台打印出相应信息,如:

INFO [main-EventThread] ReloadingPropertyPlaceholderConfigurer.propertiesReloaded(155) | Property changed detected: gtw.route.socket.timeout=8000
INFO [main-EventThread] ReloadingPropertyPlaceholderConfigurer.propertiesReloaded(227) | Updating property routeService.socketTimeout to 8000
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Disconf配置war包

    Disconf(分布式配置中心)是百度开源的一款用于解决分布式系统配置管理问题的工具,它可以集中化管理应用的配置,使得在分布式环境下配置的修改和更新变得更加便捷。在本压缩包中,包含了`disconf-web.war`文件,这...

    disconf-master.zip

    二、Disconf工作原理 Disconf采用主从复制的架构,配置信息存储在主节点上,其他节点作为从节点同步主节点的数据。其工作流程如下: 1. 开发者在disconf-web上发布配置,配置会被保存到主节点。 2. 应用启动时,...

    disconf-web简化可部署版

    《disconf-web简化可部署版详解》 "Disconf-web" 是一款专为分布式系统配置管理而设计的开源工具,其主要目标是提供一个统一、便捷的配置管理平台。在官方下载的版本中,通常需要借助Nginx进行动静态资源的分离,以...

    disconf-demo

    【标题】"disconf-demo" 是一个基于Spring Boot框架的示例程序,它展示了如何集成和使用disconf(分布式配置中心)这一...通过深入研究和实践这个示例,开发者将能够熟练地运用disconf解决实际项目中的配置管理问题。

    Disconf 分布式配置使用教程

    Disconf 分布式配置使用教程 Disconf 是一款分布式配置管理系统,旨在帮助开发者更方便地管理和维护项目中的配置文件。在本教程中,我们将详细介绍 Disconf 的使用方法和配置项。 1. Disconf 客户端录入/修改/删除...

    disconf-web-2.6.33简化版

    1.按照disconf-web.war/sql/readme.md执行SQL脚本创建库表和基础数据。 2.修改war包下的配置文件,具体目录是disconf-web.war\WEB-INF\classes\ jdbc-mysql.properties (数据库配置) redis-config.properties ...

    disconf使用

    二、Disconf的核心功能 1. 配置管理:Disconf提供了一个可视化的Web界面,允许开发者在线编辑、查看和管理配置。这些配置可以是XML、properties等格式,支持多环境(如开发、测试、生产)的配置隔离。 2. 实时更新...

    docker快速构建disconf镜像

    dd676e1ecbee zookeeper:3.3.6 "/docker-entrypoin..." About an hour ago Up About an hour 0.0.0.0:2181-&gt;2181/tcp, 0.0.0.0:2888-&gt;2888/tcp, 0.0.0.0:3888-&gt;3888/tcp dockerdisconfmaster_disconf_zookeeper_1 ...

    分布式配置中心 Disconf 安装包

    分布式配置中心 Disconf 编译好的安装包, 分布式配置中心 Disconf 编译好的安装包,。

    Disconf分布式配置管理平台 v2.6.36.zip

    7. **毕业设计与论文**:Disconf可以作为学习分布式系统、微服务架构或者配置管理领域的实践项目,对于学生进行毕业设计或者撰写相关论文具有很高的参考价值。 8. **案例研究**:在"计算机案例"中,Disconf可以作为...

    apollo和disconf对比

    本文将详细探讨两个常用的配置中心——Apollo和Disconf,并进行深入的对比分析。 Apollo是由携程开源的一款分布式配置中心,它提供了统一的配置管理平台,支持实时推送、多环境、多数据中心等特性。Apollo的设计...

    disconf-web部署指南_V1.3

    《disconf-web部署指南_V1.3》是针对disconf在Web环境下的部署与配置的一份详尽指导文档。Disconf(分布式配置中心)是一款开源的、轻量级的、适用于Java环境的分布式配置管理工具,它能有效地帮助开发者解决在...

    disconf小文档

    "软件详情.html"文件可能包含更深入的介绍,比如disconf与其他配置管理工具的对比,其核心组件的工作原理,以及一些最佳实践和注意事项。例如,如何处理配置冲突,如何进行性能优化,以及在大规模集群中部署和运维的...

    disconf 例子

    二、Disconf与`disconf.properties` `disconf.properties`是Disconf的核心配置文件,用于定义服务的基本信息和获取配置的参数。主要包括以下几个关键属性: 1. `app.name`: 应用名,用于标识不同的服务实例。 2. `...

    disconf-client-2.6.36.jar

    适用升级disconf + springcloud 高版本

    springboot集成百度disconf

    **二、SpringBoot集成Disconf步骤** 1. **引入依赖** 在SpringBoot项目的`pom.xml`中添加Disconf的依赖。由于Disconf是基于Spring框架设计的,因此与SpringBoot的集成相对平滑。 2. **配置Disconf** 配置`...

    disconf打包后的war

    如果不想导入eclipse用maven安装,可直接下载就可以用.

    disconf-web-2.6.36 maven项目

    disconf-web项目,可直接部署到tomcat上,不依赖nginx。 修改其中 jdbc-mysql.properties (数据库配置), redis-config.properties (Redis配置),zoo.properties (Zookeeper配置), application.properties (应用...

    python3通过disconf的api自动进行appname的配置文件下载和配置添加

    百度的disconf确实好用,但是手工添加配置项和配置文件很烦躁,自己利用闲余时间写了该脚本,主要支持对disconf的app自动下载和添加配置,运行之前,请先在桌面上新建一个applist.txt的文本,里面填上待操作的...

    disconf-demo:disconf分布式配置demo

    分布式配置管理在现代大型互联网应用中扮演着至关重要的角色,它允许开发者在不修改代码的情况下,...通过`disconf-demo`这个示例,你可以深入学习`disconf`的工作原理和最佳实践,提升你的分布式系统设计和运维能力。

Global site tag (gtag.js) - Google Analytics