惯例,我们从使用上开始。
准备
首先,下载并构建maven-zkcu-plugin
这是一个maven工程,采用maven构建并install本地即可
详解
接下来我们主要看效果:
我有一个配置类,如下:
|
|
接下来看下关键的,如何使用maven-zkcu-plugin,实现彻底摆脱配置文件,并又能灵活控制配置功能开关。
|
|
这里有几个参数,其中zk代表配置项保存在哪个zookeeper上;mainClass代表你的程序启动的主函数;zkConfigurableClass代表所有工程里需要配置的类,也就是添加了@TypeZkConfigurable
注解的类
看看如何使用,在你工程pom文件所在目录下,执行
|
|
即可,强调下,zkcu必须在compile阶段之后执行,ok,现在你的服务已经有了zkconfigutil的功能。
有些时候,可能想关掉zkconfigutil,那么执行
|
|
也就是去掉zkcu:zkcu即可。
特别强调下,zkcu这个plugin只能用户手动执行,无法被绑到某个maven生命周期上,这样做的目的是可能由用户控制zkconfigutil的开关。
总结
zkconfigutil采用注解的方式,实现了一个服务的配置项zookeeper化,增加dynamicUpdate = true,即可实现服务内部参数的动态更新,采用maven plugin方式,可以灵活在构建工程时控制是否使用zkconfigutil功能。 另外,如果不想将一些参数直接写在zkcu-plugin下面,也可以采用-D参数形式,为该plugin提供参数。
jerry于2015-04-17
北京