Twemproxy又名nutcraker,是由Twtter 开源,是一种代理分片机制的中间件(类似于mycat),主要用于管理 Redis Memcached 集群,可接受来自多个客户端的请求,按照路由规则,转发给后端cache节点,减少了客户端与cache 服务器直接连接的数量。
autoconf是一个用于生成可以自动地配置软件源码包,用以适应多种UNIX类系统的shell脚本工具,因此要安装autoconf。
检查是否安装autoconf:rpm -qa |grep -i autoconf,看到:autoconf-2.63-5.1.el6.noarch
若已安装版本低于2.64,卸载 rpm -e --nodeps autoconf-*
若没有安装,则去http://ftp.gnu.org/gnu/autoconf/下载目前最新版本autoconf-2.69.tar.gz安装
解压 tar -zxvf autoconf-2.69.tar.gz后进入根目录cd autoconf-2.69
配置:./configure
编译:make
安装:make install
确保每一步操作没有错误出现
去https://github.com/twitter/twemproxy下载源码包,wget https://codeload.github.com/twitter/twemproxy/zip/master
解压:unzip master,
进入解压目录:cd twemproxy-master
生成源码包 :autoreconf -fvi
配置 :./configure --prefix=/usr/local/twemproxy
编译 :make
安装 :make install
安装后会在/usr/local/twemproxy 生成 sbin share,sbin下为nutcraker命令,share下为nutcraker.8命令
需要把twemproxy-master下conf的配置nutcracker.yml复制到/usr/local/twemproxy下
编辑vim /usr/local/twemproxy/conf/nutcracker.yml配置文件如下
alpha:
listen: 192.168.172.71:22121
hash: fnv1a_64
distribution: ketama
auto_eject_hosts: true
redis: true
server_retry_timeout: 3000
server_failure_limit: 3
servers:
- 192.168.172.72:6379:1
- 192.168.172.73:6379:1
- 192.168.172.74:6379:1
listen后为twmeproxy所在节点,servers为每个redis节点,distribution采用一致性哈希算法ketama
配置完成了,测试下nutcracker.yml在语法 上是否有误
/usr/local/twemproxy/sbin/nutcracker -t /usr/local/twemproxy/conf/nutcracker.yml
正确显示如下:
nutcracker: configuration file 'conf/nutcracker.yml' syntax is ok
进入到安装路径/usr/local/twemproxy下
启动命令:sbin/nutcracker -d -c conf/nutcracker.yml -o logs/log.log -p ./twemproxy.pid
-d守护进程启动,-c指定配置文件,o指定日志文件路径,日志需要自己创建,-p指定pid保存路径
/usr/local/twemproxy/sbin/nutcracker --help命令详细参数如下
This is nutcracker-0.4.1
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, --verbose=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)
参考:https://github.com/twitter/twemproxy