一、安装QConf客户端(如果服务器上已安装可以跳过此步骤)
1、安装CMake (如果已安装可以跳过)
1.1 准备编译环境
1 | yum -y install gcc gcc-c++ |
1.2 获取源码,并解压
1 | wget https://github.com/Kitware/CMake/releases/download/v3.19.1/cmake-3.19.1.tar.gz |
1.3 编译安装
1 | ./bootstrap --prefix=/usr --datadir=share/cmake --docdir=doc/cmake && make |
2、安装 QConf
1 | git clone git@github.com:Qihoo360/QConf.git (如果没有权限可以直接去 Github 主页下载 zip 包) |
3、启动
1 | /usr/local/qconf/bin/qconf_agent |
结尾可能出现 Failed to get conf!
是一个 WARNING,可以暂时忽略,已经启动成功了。
二、在 Node.js 调用
1、在项目中安装 node-qconf
首先配置环境变量
1 | export QCONF_INSTALL=/home/work/local/qconf |
安装依赖1
npm install node-qconf
2、调用
1 | // qconf.js |
qconf 的错误处理不太完善,又十分依赖本机环境,容易出现程序直接中断而没有报错的情况。因此需要 try catch (包括 require(‘node-conf’) 语句)
三、常见问题
Q:报错:Error: QConf init failed: 201
A:大概率是因为 QConf 没有启动 (参考 https://github.com/Qihoo360/QConf/issues/22)
Q:npm 安装 node-qconf 报错:
1 | ../qconf.cc:2:19: fatal error: qconf.h: No such file or directory |
A:安装 node-qconf 前,需确保 QConf 已经被正确安装,并配置了 QCONF_INSTALL 环境变量
Q:require('node-qconf')
报错:
1 | Error: libqconf.so: cannot open shared object file: No such file or directory |
A:找不到libqconf.so
文件,需要在/usr/lib或/usr/lib64下创建libqconf的软连接
1 | sudo ln -s /usr/local/qconf/lib/libqconf.so /usr/lib64/libqconf.so |
参考链接:
https://github.com/Qihoo360/QConf
https://github.com/Qihoo360/QConf/blob/master/doc/Qconf%20Node%20Doc.md