基于Twemproxy的memcahce/Redis集群解决方案

Twemproxy是twitter正在使用的搭建redis缓存服务器集群程序。目前用户包括Pinterest、Tumblr、Twitter、Vine、Kiip、Wuaki.tv、Wanelo、Kontera、Wikimedia、Bright、56.com、Snapchat、Digg、Gawkermedia、3scale.net等。

Twemproxy是memcached和redis协议的代理服务器,并能有效减少大量连接对redis服务器的性能影响,属于比较轻量级和简单类型的:

Twemproxy特性:
轻量级、快速
保持长连接
减少了直接与缓存服务器连接的连接数量
使用 pipelining 处理请求和响应
支持代理到多台服务器上
同时支持多个服务器池
自动分片数据到多个服务器上
实现完整的 memcached 的 ASCII 和再分配协议
通过 yaml 文件配置服务器池
支持多个哈希模式,包括一致性哈希和分布
能够配置删除故障节点
可以通过端口监控状态
支持 linux, *bsd,os x 和 solaris
twemproxy 部署
记得先安装 m4、autoconf 工具   

wget https://github.com/twitter/twemproxy/archive/master.zip
unzip master.zip
mv twemproxy-master twemproxy
mv twemproxy /usr/local/
cd /usr/local/
cd twemproxy/
autoreconf -fvi
./configure --enable-debug=full
make
make install
准备 twemproxy配置文件
vim /usr/local/twemproxy/conf/nutcracker.yml

修改配置文件 nutcracker.yml
memcached:
  listen: 127.0.0.1:22121
  hash: fnv1a_64
  distribution: ketama
  timeout: 400
  backlog: 1024
  preconnect: true
  auto_eject_hosts: true
  server_retry_timeout: 30000
  server_failure_limit: 3
  servers:
   - 192.168.199.77:11211:1   
   - 192.168.199.78:11211:1

启动 tewmproxy服务
nutcracker -d -c /usr/local/twemproxy/conf/nutcracker.yml

检查启动情况
[root@localhost ~]# netstat -nltp | grep nutcracker
tcp        0      0 0.0.0.0:22222           0.0.0.0:*               LISTEN      12737/nutcracker    
tcp        0      0 192.168.199.79:22121    0.0.0.0:*               LISTEN      12737/nutcracker
Twemproxy也是有不少缺点的。比如:Twemproxy无法平滑地扩容/缩容。等等。

上一篇: PHP扫描php后门、WebShell、一句话后门等
下一篇: Centos下使用MySQL Sniffer实时监控审计Mysql语句

目前还没有人评论,您发表点看法?
发表评论

评论内容 (必填):