twemproxyベースredis分散アプリケーション


従来のテストの結論によれば、1つのredisのインスタンスのメモリ総量は8 G以内(最大20 Gを超えてはならない)に抑えることが望ましいが、実際にはredisに対するメモリの需要が8 Gよりはるかに大きい可能性があるため、redisサーバの性能を低下させないが、redisサーバの容量を効率的に拡張する案が必要である.
twemproxyは適切な選択です.
概要
twemproxy、nutcrakerとも呼ばれます.Twitterオープンソースのredisとmemcacheエージェントサーバです.
特長
•失敗したノードの自動削除をサポート
•HashTagの設定をサポート
•redisへの直接接続数を減らす
•バックエンドの複数のredisインスタンスに自動的にスライス
•単一の問題を回避
•複数のエージェント層を並列に配置することができる.クライアントは使用可能な1つを自動的に選択します
•redis pipelining requestのサポート
•ステータスモニタリングをサポート
•高スループット
配置
参考サイト:
https://github.com/twitter/twemproxy
コアスクリプト:

git clone git://github.com/twitter/twemproxy.git
autoreconf -fvi
./configure --prefix=/usr/local --enable-debug=log
make && make install

ヘルプドキュメント:

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             : this help
  -V, --version          : show version and exit
  -t, --test-conf        : test configuration for syntax errors and exit
  -d, --daemonize        : run as a daemon
  -D, --describe-stats   : print stats description and exit
  -v, --verbosity=N      : set logging level (default: 5, min: 0, max: 11)
  -o, --output=S         : set logging file (default: stderr)
  -c, --conf-file=S      : set configuration file (default: conf/nutcracker.yml)
  -s, --stats-port=N     : set stats monitoring port (default: 22222)
  -a, --stats-addr=S     : set stats monitoring ip (default: 0.0.0.0)
  -i, --stats-interval=N : set stats aggregation interval in msec (default: 30000 msec)
  -p, --pid-file=S       : set pid file (default: off)
  -m, --mbuf-size=N      : set size of mbuf chunk in bytes (default: 16384 bytes)

起動スクリプト:

./bin/nutcracker -c /usr/local/twemproxy/conf/nutcracker_test.yml -s 22222 -d -o /usr/local/twemproxy/logs/nutcracker.log

依存パッケージ
実行中に依存パッケージが存在しないか、バージョンが低すぎる場合があります.主にm 4、autoconf、automake、libtoolがあります.手動インストール手順は次のとおりです.
m 4のインストール

wget http://mirrors.kernel.org/gnu/m4/m4-1.4.17.tar.gz 
tar -xzvf m4-1.4.17.tar.gz 
cd m4-1.4.17 
./configure --prefix=/usr/local
make && make install

Autoconfのインストール

wget http://mirrors.kernel.org/gnu/autoconf/autoconf-2.69.tar.gz 
tar -xzvf autoconf-2.69.tar.gz 
cd autoconf-2.69 
./configure --prefix=/usr/local
make && make install

Automakeのインストール

wget http://mirrors.kernel.org/gnu/automake/automake-1.14.tar.gz
tar xzvf automake-1.14.tar.gz 
cd automake-1.14 
./configure --prefix=/usr/local
make && make install

libtoolのインストール

wget http://mirrors.kernel.org/gnu/libtool/libtool-2.4.tar.gz 
tar xzvf libtool-2.4.tar.gz 
cd libtool-2.4 
./configure --prefix=/usr/local
make && make install