QConf 正式开源!
来源:互联网 发布:dw软件免费吗 编辑:程序博客网 时间:2024/04/30 02:21
前言
QConf 是奇虎360内部已经非常成熟的系统组件,当前超过万台机器的部署,日处理请求过千亿,并且仍有大量的新业务蜂拥接入,之所以能够受到广泛欢迎,因为它做到了代码和配置的完全分离,避免开发人员被配置文件绑架,也解耦了开发和运维工程师的相互依赖。在稳定运行一年并真正体会其便利之后,我们希望能够将此工具开放出来与业界的兄弟姐妹们分享,让其价值得到更大的发挥,本篇主要对QConf的特点、安装使用、性能等方面进行介绍
代码:https://github.com/Qihoo360/QConf
简介
QConf 是一个分布式配置管理工具。 用来替代传统的配置文件,使得配置信息和程序代码分离,同时配置变化能够实时同步到客户端,而且保证用户高效读取配置,这使的工程师从琐碎的配置修改、代码提交、配置上线流程中解放出来,极大地简化了配置管理工作。
特点
一处修改,所有机器实时同步更新
高效读取配置
安装部署方便,使用简单
服务器宕机、网络中断、集群迁移等异常情况对用户透明
支持c/c++、shell、php、python 等语言
编译安装
QConf采用CMake进行构建(CMake 版本 2.6及以上)
可以使用以下命令完成QConf的编译安装: shell mkdir build && cd build cmake .. make make install
你也可以在CMake图形界面工具中导入CMakeList.txt 文件
使用如下配置可以指定QConf的安装目录: shell cmake .. -DCMAKE_INSTALL_PREFIX=/install/prefix
使用
搭建Zookeeper集群,并通过Zookeeper Client 新建修改配置
关于zookeeper使用的更多信息: ZooKeeper Getting Started Guide
在QConf 配置文件中配置Zookeeper集群地址
shell vi QCONF_INSTALL_PREFIX/conf/idc.conf
php #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配置文件中指定本地机房 shell echo test > QCONF_INSTALL_PREFIX/conf/localidc #指定本地机房为test
- 启动QConf
shell 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 能够达到百万
使用样例
``` c // 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
- QConf 正式开源!
- 360开源的Qconf配置同步工具使用记录
- QConf分布式配置管理工具 QConf
- php qconf qconf manage配置
- 重量级Ingres正式开源
- Facebook平台正式开源
- QConf 第3日
- qconf安装与配置
- 分布式配置管理系统QConf
- qconf安装与配置
- Golang使用QConf教程
- 重量级数据库 Ingres 正式开源
- MapAspect开源项目正式启动
- 糖醋开源社区网站正式发布
- FastJsp3.1正式开源,欢迎使用。
- .NET Framework Library 正式开源
- .NET Framework Library 正式开源
- Google Android 平台正式开源
- String-API
- Spring Quartz动态管理定时任务及相关问题总结
- centos 中,lnmp一键安装包的nginx添加SSL证书
- HDU2034
- 【深入Java虚拟机】之五:多态性实现机制——静态分派与动态分派
- QConf 正式开源!
- spring boot集成tk.mybatis3.4.0通用mapper, java.lang.ClassCastException,实体不能转换为实体
- mac安装mongodb
- Python学习笔记8.9
- 08、React系列之--使用webpack管理
- 【面试必读(编程基础)】转一篇言简意赅的a*算法
- Pairs Forming LCM 唯一分解定理
- Spring 定时器时间规则
- 09、React系列之--使用yarn包管理工具