CentOS6.5安裝Twemproxy集羣

Twemproxy,也叫Nutcraker。是一個Twtter開源的一個Redis和Memcache代理服務器。 Redis做爲一個高效的緩存服務器,很是具備應用價值。可是當使用比較多的時候,就但願能夠經過某種方式 統一進行管理。避免每一個應用每一個客戶端管理鏈接的鬆散性,同時在必定程度上變得能夠控制。 搜索了很多的開源代理項目,知乎實現的Python分片客戶端。Node的代理中間層,還有各類Restfull的開源代理。node

 

Twemproxy是一個代理服務器,能夠經過它減小Memcached或Redis服務器所打開的鏈接數。git

優勢:github

一、經過代理的方式減小緩存服務器的鏈接數redis

二、自動在多臺緩存服務器間共享數據算法

三、經過不一樣的策略與散列函數支持一致性散列vim

四、經過配置的方式禁用失敗的結點緩存

五、運行在多個實例上,客戶端能夠鏈接到首個可用的代理服務器服務器

六、支持請求的流式與批處理,於是可以下降來回的消耗函數

 

1、安裝依賴項測試

yum install automake
yum install libtool

2、更新Autoconf版本。

Twemproxy須要2.64或更高版本。不然編譯的時候報錯:

autoreconf: Entering directory `.'

autoreconf: configure.ac: not using Gettext

autoreconf: running: aclocal --force -I m4

configure.ac:8: error: Autoconf version 2.64 or higher is required

configure.ac:8: the top level

autom4te: /usr/bin/m4 failed with exit status: 63

aclocal: autom4te failed with exit status: 63

autoreconf: aclocal failed with exit status: 63

 

下載新版本:  #wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz

rpm -qf /usr/bin/autoconf
autoconf-2.63-5.1.el6.noarch

rpm -e --nodeps autoconf-2.63        #卸載當前版本

tar zxvf autoconf-2.69.tar.gz        #解壓安裝
cd autoconf-2.69
./configure --prefix=/usr            #編譯
make && make install                 #安裝
/usr/bin/autoconf -V #查看是否安裝成功

3、安裝Twemproxy

一、 安裝git命令

yum install git -y

二、 下載

git clone https://github.com/twitter/twemproxy.git

三、 安裝

cd twemproxy
autoreconf -fvi
./configure --prefix=/usr/local/twemproxy
make -j 8
make install

四、 配置文件

添加pid文件目錄和配置文件conf目錄

cd /usr/local/twemproxy
mkdir run conf

添加proxy配置文件

cd conf
vim nutcracker.yml

alpha:
    listen: 127.0.0.1:22222       #使用哪一個端口啓動Twemproxy
    hash: fnv1a_64                #指定具體的hash函數
    distribution: ketama          #具體的hash算法
    auto_eject_hosts: true        #是否在結點沒法響應的時候臨時摘除結點
    timeout: 400                  #超時時間(毫秒)
    redis: true                   #是不是Redis的proxy
    server_retry_timeout: 3000    #重試的時間(毫秒)
    server_failure_limit: 1       #結點故障多少次就算摘除掉
    servers:                      #下面表示全部的Redis節點(IP:端口號:權重  別名)
      - 192.168.1.10:6379:1 master0
      - 192.168.1.7:6379:1  master1

五、 啓動twemproxy服務

nutcracker -t 測試配置文件

nutcracker: configuration file 'conf/nutcracker.yml' syntax is ok

啓動服務:

nutcracker -d -c /usr/local/twemproxy/conf/nutcracker.yml -p /usr/local/twemproxy/run/redisproxy.pid -o /usr/local/twemproxy/run/redisproxy.log

6nutcracker用法與命令選項

Usage: nutcracker [-?hVdDt] [-v verbosity level] [-o output file]

[-c conf file] [-s stats port] [-a stats addr]

[-i stats interval] [-p pid file] [-m mbuf size]

Options:

-h, –help              : 查看幫助文檔,顯示命令選項

-V, –version           : 查看nutcracker版本

-t, –test-conf         : 測試配置腳本的正確性

-d, –daemonize           : 以守護進程運行

-D, –describe-stats : 打印狀態描述

-v, –verbosity=N   : 設置日誌級別 (default: 5, min: 0, max: 11)

-o, –output=S        : 設置日誌輸出路徑,默認爲標準錯誤輸出 (default: stderr)

-c, –conf-file=S     : 指定配置文件路徑 (default: conf/nutcracker.yml)

-s, –stats-port=N   : 設置狀態監控端口,默認22222 (default: 22222)

-a, –stats-addr=S  : 設置狀態監控IP,默認0.0.0.0 (default: 0.0.0.0)

-i, –stats-interval=N    : 設置狀態聚合間隔 (default: 30000 msec)

-p, –pid-file=S         : 指定進程pid文件路徑,默認關閉 (default: off)

-m, –mbuf-size=N      : 設置mbuf塊大小,以bytes單位 (default: 16384 bytes)

7、最近在新的公司要上twemproxy方案了,使用過程當中出現了一下小問題:

1).yml配置文件中每一個參數值對分隔符」:」後須要有一個空格

2)不一樣層次的參數須要縮進區分,最好使用tab鍵縮進,不然nutcracker進程不能啓動。

3)在auto_eject_hosts: true的時候,關閉一個redis實例後,寫入數據仍是提示「(error) ERR Connection refused」。這個與server_retry_timeout參數設置過小有關,默認值30000msec是一個很好的選擇。

相關文章
相關標籤/搜索