360 內部使用的分布式配置管理工具:QConf
簡介
QConf 是一個分布式配置管理工具。 用來替代傳統的配置文件,使得配置信息和程序代碼分離,同時配置變化能夠實時同步到客戶端,而且保證用戶高效讀取配置,這使的工程師從瑣碎的配置修改、代碼提交、配置上線流程中解放出來,極大地簡化了配置管理工作。
特點
- 一處修改,所有機器實時同步更新
- 高效讀取配置
- 安裝部署方便,使用簡單
- 服務器宕機、網絡中斷、集群遷移等異常情況對用戶透明
- 支持c/c++、shell、php、python、lua 等語言
編譯安裝
QConf采用CMake進行構建(CMake 版本 2.6及以上)
可以使用以下命令完成QConf的編譯安裝:
mkdir build && cd build cmake .. make make install
你也可以在CMake圖形界面工具中導入CMakeList.txt 文件
使用如下配置可以指定QConf的安裝目錄:
cmake .. -DCMAKE_INSTALL_PREFIX=/install/prefix
使用
-
搭建Zookeeper集群,并通過Zookeeper Client 新建修改配置
關于zookeeper使用的更多信息: ZooKeeper Getting Started Guide
-
在QConf 配置文件中配置Zookeeper集群地址
vi QCONF_INSTALL_PREFIX/conf/idc.conf
#all the zookeeper host configuration. #[zookeeper] zookeeper.test=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183 #test機房zookeeper配置
- 在QConf配置文件中指定本地機房
echo test > QCONF_INSTALL_PREFIX/conf/localidc #指定本地機房為test
- 啟動QConf
cd QCONF_INSTALL_PREFIX/bin && sh agent-cmd.sh start
- 編寫代碼訪問QConf
性能
- 測試策略
- 測試次數 : 循環測試1000次,每次循環獲取分別獲取10000個不同key對應的值,總共取一千萬次key
- 測試數據 : 每個key對應的value的大小是1k
- 測試方式 : 多進程測試時候,多個進程同時運行,然后截取其中一段時間,來記錄各個進程運行取一千萬次的總耗時
- 測試機器 : Intel(R) Xeon(R) CPU E5-2630 0 @ 2.30GHz, 24核;64G memory
- 測試語言 : c++
- 測試結果
- 結論
- 單進程的延遲是16微秒左右
- 在多進程的情況下,QPS 能夠達到百萬
使用樣例 // Init the qconf env
ret = qconf_init();
assert(QCONF_OK == ret);
// Get Conf value
char value[QCONF_CONF_BUF_MAX_LEN];
ret = qconf_get_conf("/demo/node1", value, sizeof(value), NULL);
assert(QCONF_OK == ret);
// Destroy qconf env
qconf_destroy();
文檔
- Getting Started - QConf 使用說明,包括QConf的安裝,運行,API等信息
- wiki
聯系方式
- 郵箱: g-qconf@list.qihoo.net
- QQ群: 438042718
本文由用戶 dy223 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!