赤色烙印 发表于 2016-12-20 08:00:47

基于twemproxy的redis分布式应用

根据以往的测试结论,单个redis的实例的内存总量最好控制在8G以内(最大不能超过20G),而实际上应用对redis的内存的需求可能会远远大于8G,因此需要一个保持redis server性能不下降,但可以有效扩充redis server的容量的方案。

twemproxy是一个恰当的选择。

简介
twemproxy,也叫nutcraker。是一个twtter开源的一个redis和memcache代理服务器。
特点
·支持失败节点自动删除
·支持设置HashTag
·减少与redis的直接连接数
·自动分片到后端多个redis实例上
·避免单点问题
·可以平行部署多个代理层.client自动选择可用的一个
·支持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


依赖包
执行过程中可能遇到依赖包不存在或者版本过低的情况,主要有m4, autoconf, automake, libtool。手动安装过程如下:
安装m4

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
页: [1]
查看完整版本: 基于twemproxy的redis分布式应用