轻量级高性能PHP框架ycroute(高级):集成分布式配置中心QConf

目录:QConf介绍 QConf优点 QConf架构 zookeeper 安装 QConf安装部署 使用QConf QConf管理界面安装 PHP SDK 扩展 分集群配置 - 不同环境,不同配置 与YCRoute框架集成 - db/redis配置化 灰度发布QConf介绍: QConf 是奇虎360开源的一款分布式配置中心。是一款非常成熟的系统组件,运行3年多...
摘要由CSDN通过智能技术生成

目录:

  • QConf介绍
  • QConf优点
  • QConf架构
  • zookeeper 安装
  • QConf安装部署
  • 使用QConf
  • QConf管理界面安装
  • PHP SDK 扩展
  • 分集群配置 - 不同环境,不同配置
  • 与YCRoute框架集成 - db/redis配置化
  • 灰度发布

QConf介绍:

    QConf 是奇虎360开源的一款分布式配置中心。是一款非常成熟的系统组件,运行3年多,当前超过2万台机器的部署,日处理请求过千亿,并且仍有大量的新业务蜂拥接入,我在360工作的时候,经常会与它打交道。

为什么要用到他呢?

因为它做到了代码和配置的完全分离,避免开发人员被配置文件绑架,也解耦了开发和运维工程师的相互依赖。

尤其是当业务分布较广,配置分布较广的时候,就会很容易地出现一些问题,比如做了负载均衡,需要调整一下应用配置。刚好改漏了一台机,就偶尔出现一些问题,排查起来也是很吃力的。

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

QConf优点

  • 一处修改,所有机器实时同步更新,通过zookeeper 的推送,而不是轮训查询服务器的配置变化,没有无效请求。

  • 相同代码,不同环境,配置不同,在业务运行时,我们开发通常会遇到Test、Beta、Online环境,即使是线上环境也可能需要有多个不同集群,针对这种情况,qconf 保证用户的代码是完全一样,但是不同环境,获取的配置值不同。

  • 高效读取配置,客户端读取配置直接从共享内存获取,性能高。

  • 安装部署方便,使用简单

  • 服务器宕机、网络中断、集群迁移等异常情况,QConf都能保证数据的正确,对用户透明

  • 支持c/c++、php、go、java、shell、luajit、node.js、perl、python 等语言

QConf架构

QConf 由3部分组成,zookeeper 服务、agent、各种语言SDK。

 

 zookeeper

     zookeeper 服务器用来存储所有的配置信息。它以节点树的形式来组织所有数据,类似于文件系统的目录结构,一个节点有名称和值两个属性,节点下又可以建立若干个子节点,如/a、/b/c、/d/e/f等都是合法的节点名。我们使用节点名代表配置项的名称,如username、timeout等,使用节点值代表配置项的值,如jack、5等。另外它以至少3台服务器组成集群,以提供高可用,它的数据是强一致性。

agent

    agent相当于 ZooKeeper 客户端,与zookeeper 保持长链接,获取、维护zookeeper里的配置信息,并将配置写入本地共享内存,在每台需要用到 qconf 的机器上都需要安装。

   为防止在网络中断的同时机器重启(此时共享内存内容为空,也无法通过网络去zookeeper上取值;同时会打印相关错误日志信息),agent会定期把共享内存里的所有内容持久化到磁盘上的一个dump文件里,保证在上述情况下可以取到上次备份的配置信息。

SDK


     SDK封装了操作共享内存的逻辑,为用户提供读取配置值的接口。

     QConf现在提供多种语言的SDK,包括C/C++、Java、PHP、Python、Lua、Go 等等。

 

zookeeper 安装

因为QConf 依赖zookeeper,所以我们首先来安装zookeeper

网上找个 zookeeper 安装教程,一大堆。

创建配置节点

[root@gzapi: ~]# zkCli.sh
[zk: localhost:2181(CONNECTED) 0] create /demo demo
[zk: localhost:2181(CONNECTED) 1] create /demo/confs confs
[zk: localhost:2181(CONNECTED) 2] create /demo/confs/conf1 test11111111
[zk: localhost:2181(CONNECTED) 3] create /demo/confs/conf2 test22222222
[zk: localhost:2181(CONNECTED) 4] create /demo/confs/conf3 test33333333

 

QConf安装部署

安装QConf 有如下两种方式可以安装QConf,可以根据自己的情况来决定:

1. 使用源码安装

git clone https://github.com/Qihoo360/QConf.git
cd QConf 
mkdir build && cd build 
cmake ..
make
make install

默认安装路径为 /usr/local/qconf,通过  cmake .. -DCMAKE_INSTALL_PREFIX=/opt/

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值