上一章介绍了disconf的安装预配置,这章主要介绍下disconf与spring集成
1、添加依赖
<dependency> <groupId>com.baidu.disconf</groupId> <artifactId>disconf-client</artifactId> <version>2.6.36</version> </dependency>
2、修改配置文件
修改spring的配置文件spring-config.xml
添加初始化配置
<!-- 使用disconf必须添加以下配置 --> <bean id="disconfMgrBean" class="com.baidu.disconf.client.DisconfMgrBean" destroy-method="destroy"> <property name="scanPackage" value="com.abcde" /> </bean> <bean id="disconfMgrBean2" class="com.baidu.disconf.client.DisconfMgrBeanSecond" init-method="init" destroy-method="destroy"> </bean> <!-- 自动完成创建代理织入切面 --> <aop:aspectj-autoproxy />
增加一个disconf.properties配置文件到classpath下:
# 是否使用远程配置文件 # true(默认)会从远程获取配置 false则直接获取本地配置 disconf.enable.remote.conf=true # # 配置服务器的 HOST,用逗号分隔 127.0.0.1:8004,127.0.0.1:8004 # disconf.conf_server_host=172.20.50.26:8990 #disconf.conf_server_host=127.0.0.1:80 # 版本, 请采用 X_X_X_X 格式 disconf.version=1_0_0_0 # APP 请采用 产品线_服务名 格式 disconf.app=pinganwj_appt # 环境disco disconf.env=dev # 忽略哪些分布式配置,用逗号分隔 disconf.ignore= # 获取远程配置 重试次数,默认是3次 disconf.conf_server_url_retry_times=1 # 获取远程配置 重试时休眠时间,默认是5秒 disconf.conf_server_url_retry_sleep_seconds=1 # 用户指定的下载文件夹, 远程文件下载后会放在这里 disconf.user_define_download_dir=./disconf/download # 下载的文件会被迁移到classpath根路径下,强烈建议将此选项置为 true(默认是true) disconf.enable_local_download_dir_in_class_path=true
3、通过xml的分布式配置
添加静态配置文件
<!-- 使用托管方式的disconf配置(无代码侵入, 配置更改不会自动reload) --> <bean id="configproperties_no_reloadable_disconf" class="com.baidu.disconf.client.addons.properties.ReloadablePropertiesFactoryBean"> <property name="locations"> <list> <value>file:config/global.properties</value> <value>file:config/jdbc.properties</value> <value>file:config/config-db.properties</value> <value>file:config/clinic-api.properties</value> </list> </property> </bean> <bean id="propertyConfigurerForProject1" class="com.abcde.core.base.utils.PropertyPlaceholder"> <property name="ignoreResourceNotFound" value="true" /> <property name="ignoreUnresolvablePlaceholders" value="true" /> <property name="propertiesArray"> <list> <ref bean="configproperties_no_reloadable_disconf" /> </list> </property> </bean>
添加动态配置(托管式),启动时下载配置文件;配置文件变化时,负责动态推送。程序不会自动reload配置,需要自己写回调函数(实现IDisconfUpdate接口,并添加DisconfUpdateService注解)。
<!-- 使用托管方式的disconf配置(无代码侵入, 配置更改会自动reload) --> <bean id="configproperties_reloadable_disconf" class="com.baidu.disconf.client.addons.properties.ReloadablePropertiesFactoryBean"> <property name="locations"> <list> <value>file:config/kafka.properties</value> <value>file:config/emailSendConfig.properties</value> </list> </property> </bean> <bean id="propertyConfigurerForProject" 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_reloadable_disconf" /> </list> </property> </bean>
@Component @DisconfUpdateService(confFileKeys = { "kafaka.properties" }) public class KafakaConfigCallback implements IDisconfUpdate { @Override public void reload() throws Exception { } }
4、基于注解的分布式配置
@Configuration @DisconfFile(filename="redis.properties") public class JedisConfig implements IDisconfUpdate { protected static final Logger LOGGER = LoggerFactory .getLogger(JedisConfig.class); // 代表连接地址 private String host; // 代表连接port private int port; /** * 地址, 分布式文件配置 * * @return */ @DisconfFileItem(name = "redis.host", associateField = "host") public String getHost() { return host; } public void setHost(String host) { this.host = host; } /** * 端口, 分布式文件配置 * * @return */ @DisconfFileItem(name = "redis.port", associateField = "port") public int getPort() { return port; } public void setPort(int port) { this.port = port; } public void reload() throws Exception { LOGGER.info("host: " + host); } }
相关推荐
Disconf分布式配置管理平台 v2.6.36.zip
Disconf 分布式配置使用教程
为您提供Disconf分布式配置管理平台下载,Disconf(Distributed Configuration Management Platform)分布式配置管理平台,专注于为各种「分布式系统配置管理」的「通用组件」和「通用平台」提供统一的「配置管理...
SpringCloud——分布式配置中心(Spring Cloud Config)之高可用的分布式配置中心
Disconf(Distributed Configuration Management Platform)分布式配置管理平台,专注于为各种「分布式系统配置管理」的「通用组件」和「通用平台」提供统一的「配置管理服务」。包括百度、滴滴出行、银联、网易、...
disconf分布式配置demo
分布式配置中心 Disconf 编译好的安装包, 分布式配置中心 Disconf 编译好的安装包,。
spring-cloud-config是用来集中管理分布式的配置问题,不同环境不同配置,动态化的配置更新,分环境部署比如dev/test/prod/beta/release,运行期间动态调整配置,不再需要在每个服务部署的机器上编写配置文件,服务...
SpringCloud的Demo,里面包含,服务注册与发现、分布式链路跟踪、分布式服务跟踪zipkin、健康检查、断路器、分布式网关、分布式配置
GIT 分布式配置管理工具 开源工具,与SVN类同,分布式管理。
SpringCloud之七 分布式配置中心SpringCloudConfig.pdf,是微服务中配置的处理使用
本demo springCloud版本为1.5.9,...本项目使用本地分布式配置(非git远程配置),启动顺序为服务注册中心(discovery)、配置中心(confugure)、微服务(micro-server),配置文件ip需修改为你自己的ip或localhost。
DCMP是分布式配置管理平台。提供了一个etcd的管理界面,可通过界面修改配置信息,借助confd可实现配置文件的同步。
基于Redis的分布式配置管理中心.zip Maven配置 <groupId>com.tinet</groupId> <artifactId>clink-config-client <version>1.0.0 Spring配置文件 <value>classpath*:app.properties 设置环境变量或...
一款基于Spring Boot , 用起来还挺顺手的分布式锁 一款基于Spring Boot , 用起来还挺顺手的分布式锁 一款基于Spring Boot , 用起来还挺顺手的分布式锁 一款基于Spring Boot , 用起来还挺顺手的分布式锁 一款基于...
spring分布式配置详解,并有testng测试报告, 公司封了端口,下载后,把后缀名改为rar就行了
基于.NET Core开发的轻量级分布式配置中心.zip
Beanstalkd分布式内存队列系统 的 spring boot starter 封装 部署 beanstalkd 服务 docker run -d -p 11300:11300 schickling/beanstalkd ② 引入依赖 <groupId>com.pig4cloud.beanstalk</groupId> <artifactId>...
分布式配置文件
SpringColud1简易分布式 ● cloud-config-server:配置服务器-(通过git获取配置) ● cloud-eureka-server:eureka注册服务器 ● cloud-simple-service:一个使用mybatis的数据库应用,服务端 ● cloud-simple-...