彻底摆脱配置文件 一(开源项目zkconfigutil详解)
2014-02-18 20:59
495 查看
zkconfigutil介绍
它只是个工具,用于实现分布式集群间配置项的管理,虽小,但很、灰常好用,easy play
项目个性化地址http://jerrysearch.github.io/zkconfigutil/
代码实例
详解
该Demo模拟集群环境,假入Demo用于工程公共配置管理,一般其会有比较多的字段,当前zkconfigutil版本只考虑可配置的字段的值均可以通过string表示,这样我们就可以通过eclipse zookeeer插件方便的实现可视化修改
如您所见,Demo中主要有两类注解,一个用于class,一个用于字段
该注解用于class主要有三个参数,path代表该配置在zookeeper上的根目录,一个配置项实际保存在zookeeper上的路径为/path/ClassSimpleName/FieldName,server代表使用的zookeeper地址,标准的zookeeper地址格式,useOwnZkServer表示是否使用自己指定的私有zookeeper,下面您会看到一个totalzookeeper,耐心往下看
该注解用于field主要有两个参数,resove主要实现该字段的赋值操作,dynamicUpdate设置该字段是否需要动态更新,true时,zookeeper会对该路径添加dataListener,当zookeeper上值发生变更时,通过reslove实现字段的更新操作
您可能看到了,主要工作在于reslove的开发,但其实其只有两个方法,easy play
so easy,两行代码实现Demo的zookeeper化,心动不如行动。game over!!!
description
是的,这个工具其实是我写的,分享给大家,同时也希望大家多提提建议或意见,希望能将其开源,用在N多分布式系统上,所以您可以在https://github.com/jerrysearch/zkconfigutil/wiki 上fork该project,真心希望您能成为其中一员!!!
此致,敬礼
jerry 于2014-02-18晚
它只是个工具,用于实现分布式集群间配置项的管理,虽小,但很、灰常好用,easy play
项目个性化地址http://jerrysearch.github.io/zkconfigutil/
代码实例
/** * just test * @author JERRY * */ @TypeZkConfigurable(path="/test/jerry", server="localhost:2181", useOwnZkServer=false) public final class Demo { @FieldZkConfigurable(resove=DemoF1Resolve.class, dynamicUpdate=true) public static String F1 = "F1"; @FieldZkConfigurable(resove=DemoF2Resolve.class, dynamicUpdate=true) public static String F2 = "F2"; @FieldZkConfigurable(resove=DemoF3Resolve.class, dynamicUpdate=true) public static Boolean F3 = false; }
public final class DemoF1Resolve extends AbstractResolve{ @Override public String resolve() { // TODO Auto-generated method stub return Demo.F1; } @Override public void dResolve(String src) { // TODO Auto-generated method stub Demo.F1 = src; } }
详解
该Demo模拟集群环境,假入Demo用于工程公共配置管理,一般其会有比较多的字段,当前zkconfigutil版本只考虑可配置的字段的值均可以通过string表示,这样我们就可以通过eclipse zookeeer插件方便的实现可视化修改
如您所见,Demo中主要有两类注解,一个用于class,一个用于字段
@TypeZkConfigurable(path="/test/jerry", server="localhost:2181", useOwnZkServer=false)
该注解用于class主要有三个参数,path代表该配置在zookeeper上的根目录,一个配置项实际保存在zookeeper上的路径为/path/ClassSimpleName/FieldName,server代表使用的zookeeper地址,标准的zookeeper地址格式,useOwnZkServer表示是否使用自己指定的私有zookeeper,下面您会看到一个totalzookeeper,耐心往下看
@FieldZkConfigurable(resove=DemoF1Resolve.class, dynamicUpdate=true)
该注解用于field主要有两个参数,resove主要实现该字段的赋值操作,dynamicUpdate设置该字段是否需要动态更新,true时,zookeeper会对该路径添加dataListener,当zookeeper上值发生变更时,通过reslove实现字段的更新操作
您可能看到了,主要工作在于reslove的开发,但其实其只有两个方法,easy play
ZkConfigUtil app = new ZkConfigUtil("localhost:2181"); app.register(Demo.class, true);
so easy,两行代码实现Demo的zookeeper化,心动不如行动。game over!!!
description
是的,这个工具其实是我写的,分享给大家,同时也希望大家多提提建议或意见,希望能将其开源,用在N多分布式系统上,所以您可以在https://github.com/jerrysearch/zkconfigutil/wiki 上fork该project,真心希望您能成为其中一员!!!
此致,敬礼
jerry 于2014-02-18晚
相关文章推荐
- 彻底摆脱配置文件 二 (开源项目zkconfigutil resolve自动生成)
- 彻底摆脱配置文件 八(使用maven-zkcu-plugin灵活控制zkconfigutil)
- 彻底摆脱配置文件 五(基于javaagent实现zkconfigutil对程序零侵入)
- 彻底摆脱配置文件 三(开源项目zkconfigutil通用resolve自动生成)
- 彻底摆脱配置文件,zkconfigutil分布式环境中配置项管理工具(持续更新中)
- 彻底摆脱配置文件 四(基于反射的通用resolve详解)
- WebConfig 配置文件详解
- web.config详解(配置文件节点说明)
- 详解MySQL Cluster管理结点的config.ini配置文件
- 项目文件中含有两个config文件,app.config与app1.config,如何获取app1.config中的配置
- Web.config配置文件详解
- Struts-config.xml配置文件《action-mappings》元素的详解
- 在部署 C#项目时转换 App.config 配置文件
- ASP.NET配置文件Web.config 详解
- ASP.NET项目站点配置Web.Config文件
- MTK项目配置文件ProjectConfig.mk解析
- Web.config配置文件详解(转载)
- Web.config配置文件详解
- Spring MVC配置文件的三个常用配置详解(annotation-config,annotation-config,annotation-driven)
- 【MyBatis】MyBatis Generator插件自动生成文件,generatorConfig.xml配置详解