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/299318java

給qconf配置zookeeper

默認的編譯目錄是在linux

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雖然開源的精神是不錯的,可是這個東東過低級了,用起來也不太爽。git

Qconf Github Wiki

https://github.com/Qihoo360/QConfgithub

有什麼問題能夠掃碼關注微信公衆號:我是攻城師(woshigcs),在後臺留言諮詢。 技術債不能欠,健康債更不能欠, 求道之路,與君同行。redis

輸入圖片說明

相關文章
相關標籤/搜索