360开源的Qconf配置同步工具使用记录


编译Qconf

git clone https://github.com/Qihoo360/QConf.git


cd Qconf
//注意如果不是root永恒,可能需要使用sudo权限
mkdir build && cd build
// 默认安装在/usr/local/qconf目录,后面的命令指定安装目录
cmake ..  或者 cmake .. -DCMAKE_INSTALL_PREFIX=/install/prefix
make
make install


//如果出错,也就下面几个错误了
sudo ln -s /usr/bin/aclocal /usr/bin/aclocal-1.14
sudo ln -s /usr/bin/automake /usr/bin/automake-1.14
sudo yum install -y texinfo

//一切顺利,即可编译成功
安装zookeeper,可参考散仙的文章:http://qindongliang.iteye.com/category/299318

给qconf配置zookeeper

默认的编译目录是在

cd /usr/local/qconf/
drwxr-xr-x. 2 root root 55 9月  20 17:31 bin
drwxr-xr-x. 2 root root  6 9月  20 17:31 cmd
drwxr-xr-x. 2 root root 53 9月  21 15:42 conf
drwxr-xr-x. 2 root root  6 9月  20 17:31 doc
drwxr-xr-x. 2 root root 23 9月  21 15:44 dumps
drwxr-xr-x. 2 root root 62 9月  20 17:31 include
drwxr-xr-x. 2 root root 41 9月  20 17:31 lib
drwxr-xr-x. 2 root root 21 9月  20 17:31 lock
drwxr-xr-x. 2 root root 54 9月  21 15:49 logs
drwxr-xr-x. 2 root root  6 9月  20 17:31 monitor
-rw-r--r--. 1 root root  5 9月  21 15:44 pid
drwxr-xr-x. 2 root root  6 9月  20 17:31 result
drwxr-xr-x. 2 root root 30 9月  20 17:31 script
-rw-r--r--. 1 root root 19 9月  20 16:14 version

//配置zk地址
vi conf/idc.conf
zookeeper.test=192.168.10.38:2181,192.168.10.39:2181,192.168.10.40:2181

//配置idc,默认是test就不用动
vi conf/localidc
test

//启动agent
sh bin/agent-cmd.sh start

//向zk写入几条测试数据,需要使用zookeeper自带的命令行写,qconf不支持写

(1) 路径: /tz/key1  内容:key1
(2) 路径: /tz/key2  内容:key2
(3) 路径: /tz/key3  内容:key3

//在shell下面读取zk里面的数据

qconf get_conf /tz/key1
//得到结果 key1
qconf get_conf /tz/key2
//得到结果 key2

qconf get_batch_keys /tz/
//结果
key1
key2
key3
编译Java客户端

//进入qconf的驱动端
cd /home/search/QConf/driver/java

//下面几个需要配置下
CC      = g++
JNI_DIR = /home/search/jdk1.8.0_102/include/
JNI_MD_DIR = /home/search/jdk1.8.0_102/include/linux/
QCONF_HEAD_DIR = /usr/local/qconf/include/
LIBOBJS = /usr/local/qconf/lib/libqconf.a

// 安装Ant,qconf编译java是用ant打包的

//下载Ant,http://ftp.tsukuba.wide.ad.jp/software/apache//ant/binaries/apache-ant-1.9.7-bin.tar.gz

//解压完,安装配置环境变量
#ant
export ANT_HOME=/home/search/ant
export CLASSPATH=$CLASSPATH:$ANT_HOME/lib
export PATH=$PATH:$ANT_HOME/bin


//最后执行 make 会在/home/search/QConf/driver/java/qconf_jar下面看到jar包

这个jar包,只能在linux上使用,win上调试不支持。
最后说下使用感,Qconf只能从zookeeper上读,并不支持写,也就是说,功能非常有限,本质上只能算是对操作zk的低级api做了个封装而已,而且只是读的api,比较low,而且客户端的java jar包,竟然不支持win上调试,让我很诧异,如果我要选择一个操作zk的框架,肯定是使用 curator,当然原生的zk也有jar,就是更加底层而已,像配置同步这件事使用zookeeper和redis都可以,zk的高可用方面会更好,配置同步这件事其实非常简单,就是存储和读取而已,然后对连接稍作优化即可,感觉Qconf适合那些不是Java为主的编程的人员使用,如果是Java编程人员,真心建议自己使用curator或者zk原生api来实现配置同步,并没有多大开发量,Qconf虽然开源的精神是不错的,但是这个东东太低级了,用起来也不太爽。

Qconf Github Wiki

https://github.com/Qihoo360/QConf


有什么问题可以扫码关注微信公众号:我是攻城师(woshigcs),在后台留言咨询。
技术债不能欠,健康债更不能欠, 求道之路,与君同行。

猜你喜欢

转载自qindongliang.iteye.com/blog/2326030