twemproxy安装配置
介绍:
twemproxy,也叫nutcraker。是一个twtter开源的一个redis和memcache代理服务器。
redis作为一个高效的缓存服务器,非常具有应用价值。但是当使用比较多的时候,就希望可以通过某种方式 统一进行管理。
避免每个应用每个客户端管理连接的松散性。同时在一定程度上变得可以控制。
作用:
通过代理的方式减少缓存服务器的连接数
自动在多台缓存服务器间共享数据
通过不同的策略与散列函数支持一致性散列
通过配置的方式禁用失败的结点
运行在多个实例上,客户端可以连接到首个可用的代理服务器
支持请求的流式与批处理,因而能够降低来回的消耗
1.安装autoconf
#autoconf下载地址:http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
cd /root/soft
tar zxvf autoconf-2.69.tar.gz
cd autoconf-2.69
./configure
make
make install
2.安装git命令
#首先需要安装git的依赖包,如果是centos 6以上直接yum install git就ok
yum install curl curl-devel zlib-devel openssl-devel perl tcl cpio expat-devel gettext-devel -y
#下载最新的git包
cd /root/soft
tar zxvf git-1.7.3.tar.gz
cd git-1.7.3
autoconf
./configure
make && make install
3.安装twemproxy
cd /root/soft
git clone https://github.com/twitter/twemproxy.git
cd twemproxy
autoreconf -fvi
./configure --enable-debug=log
make
4.修改配置文件
src/nutcracker -h
mkdir -p /usr/local/nutcracker/bin
mkdir -p /usr/local/nutcracker/conf
cp src/nutcracker /usr/local/nutcracker/bin
cp conf/* /usr/local/nutcracker/conf
vi /usr/local/nutcracker/etc/nutcracker.yml #添加proxy配置文件
gamma:
listen: 192.168.3.201:11211
hash: crc32a
distribution: ketama
timeout: 400
backlog: 1024
preconnect: true
auto_eject_hosts: true
server_retry_timeout: 2000
server_failure_limit: 3
servers:
- 192.168.3.202:11211:1
- 192.168.3.206:11211:1
- 192.168.3.206:11212:1
- 192.168.3.206:11213:1
#备注:
hash: crc32a # crc32a表示算法,我们老大要求用这个算法,线上就用了它。
auto_eject_hosts: true #是否在结点无法响应的时候临时摘除结点
server_retry_timeout: 2000 #重试的时间(毫秒)
server_failure_limit: 3 #结点故障多少次就算摘除掉
5.启动twemproxy服务
/usr/local/nutcracker/bin/nutcracker -t -c /usr/local/nutcracker/conf/nutcracker.yml #测试配置文件
/usr/local/nutcracker/bin/nutcracker -d -c /usr/local/nutcracker/conf/nutcracker.yml
6.测试
#往代理缓存192.168.3.201的11211端口输入一个键值key1 为 123
[[email protected] nutcracker]# telnet 192.168.3.201 11211
Trying 192.168.3.201...
Connected to 192.168.3.201 (192.168.3.201).
Escape character is ‘^]‘.
set key1 0 3600 3
123
STORED
备注:
#我们向代理插入的key1值有可能在客户端任意一台机器上面。我们可以分别进入每一台去get这个值。当你看到其中有一台有数据,说明代理就成功了。这样我们就可以利用代理存储更多的数据。记住这一点,缓存是不需要高可用的。