Skip to content
crnlmchina edited this page Oct 22, 2014 · 14 revisions

分布配置工具包

在大型集群和分布式应用中,配置也是应该考虑需要复用的重要因素,如果配置分布在集群结点中,修改同步就比较麻烦,而且比较容易出错。


特性

  • 集中管理集群配置
  • 实现配置热更新
  • Spring集成
  • 配置管理web界面

使用

  • 直接使用

	ConfigFactory configFactory = new ConfigFactory(connectStr, rootNode);
	ConfigNode node = configFactory.getConfigNode("group0");
	Assert.assertNotNull(node.getProperty("name"));
  • Spring PlaceholderConfigurer集成

	<bean id="configFactory" class="com.dangdang.config.service.easyzk.ConfigFactory" factory-method="create">
		<constructor-arg name="connectStr" value="zoo.host1:8181,zoo.host2:8181,zoo.host3:8181" />
		<constructor-arg name="rootNode" value="/projectx/modulex" />
	</bean>

	<bean id="zookeeperSources" class="com.dangdang.config.service.easyzk.support.spring.ZookeeperSourceFactory" factory-method="create">
		<constructor-arg name="configFactory" ref="configFactory" />
		<constructor-arg name="nodes">
			<list>
				<value>config-group1</value>
				<value>config-group2</value>
				<value>config-group3</value>
			</list>
		</constructor-arg>
	</bean>

	<bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
		<property name="order" value="1" />
		<property name="ignoreUnresolvablePlaceholders" value="true" />
		<property name="propertySources" ref="zookeeperSources" />
	</bean>