<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          QConf分布式配置管理工具

          聯(lián)合創(chuàng)作 · 2023-09-27 01:19

          QConf 是奇虎 360 內(nèi)部分布式配置管理工具。用來(lái)替代傳統(tǒng)的配置文件,使得配置信息和程序代碼分離,同時(shí)配置變化能夠?qū)崟r(shí)同步到客戶端,而且保證用戶高效讀取配置,這使的工程師從瑣碎的配置修改、代碼提交、配置上線流程中解放出來(lái),極大地簡(jiǎn)化了配置管理工作。

          特點(diǎn)

          • 一處修改,所有機(jī)器實(shí)時(shí)同步更新

          • 高效讀取配置

          • 安裝部署方便,使用簡(jiǎn)單

          • 服務(wù)器宕機(jī)、網(wǎng)絡(luò)中斷、集群遷移等異常情況對(duì)用戶透明

          • 支持c/c++、shell、php、python、lua 等語(yǔ)言

          編譯安裝

          QConf采用CMake進(jìn)行構(gòu)建(CMake 版本 2.6及以上)

          可以使用以下命令完成QConf的編譯安裝:

          mkdir build && cd build
          cmake ..
          make
          make install

          你也可以在CMake圖形界面工具中導(dǎo)入CMakeList.txt 文件

          使用如下配置可以指定QConf的安裝目錄:

          cmake .. -DCMAKE_INSTALL_PREFIX=/install/prefix

          使用

          • 搭建Zookeeper集群,并通過Zookeeper Client 新建修改配置

            關(guān)于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機(jī)房zookeeper配置
          • 在QConf配置文件中指定本地機(jī)房

          echo test > QCONF_INSTALL_PREFIX/conf/localidc #指定本地機(jī)房為test
          • 啟動(dòng)QConf

          cd QCONF_INSTALL_PREFIX/bin && sh agent-cmd.sh start
          • 編寫代碼訪問QConf

          性能

          1. 測(cè)試策略

            • 測(cè)試次數(shù) : 循環(huán)測(cè)試1000次,每次循環(huán)獲取分別獲取10000個(gè)不同key對(duì)應(yīng)的值,總共取一千萬(wàn)次key

            • 測(cè)試數(shù)據(jù) : 每個(gè)key對(duì)應(yīng)的value的大小是1k

            • 測(cè)試方式 : 多進(jìn)程測(cè)試時(shí)候,多個(gè)進(jìn)程同時(shí)運(yùn)行,然后截取其中一段時(shí)間,來(lái)記錄各個(gè)進(jìn)程運(yùn)行取一千萬(wàn)次的總耗時(shí)

            • 測(cè)試機(jī)器 : Intel(R) Xeon(R) CPU E5-2630 0 @ 2.30GHz,  24核;64G memory

            • 測(cè)試語(yǔ)言 : c++

          2. 測(cè)試結(jié)果

            • enter image description here

          3. 結(jié)論

            • 單進(jìn)程的延遲是16微秒左右

            • 在多進(jìn)程的情況下,QPS 能夠達(dá)到百萬(wàn)

          使用樣例

                // 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();
          瀏覽 31
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美性猛交久久久久 | 玩弄奶水刚产少妇 | 操逼伊人| 在线观看黄色片 | 玖玖视频网站 |