twemproxy 又叫netcracker,是一个高性能的协议路由器(代理服务器),可用于memcached/redis 集群,支持数据分片。

在国外兜了一圈也没发现有人对其进行rpm打包,估计大家都在等redis 3.0 cluster 吧。于是研究了一下,顺手写了个spec 文件。编译安装对autoconf 和m4 有版本要求,所以这个srpm包 只能在centos 7 工作,centos6 上无法直接使用,除非升级依赖包。

由于对centos 7 的systemd 的开机启动脚本还不太熟悉,所以没有包含启动脚本。

可以使用下面的办法手动启动或者加入/etc/rc.local 实现开机启动

1
/usr/sbin/nutcracker  -c  /etc/twemproxy/nutcracker .yml -d

软件包内容

1
2
3
4
5
#rpm -qpl twemproxy-0.4.0-2.el7.centos.x86_64.rpm
/etc/twemproxy
/etc/twemproxy/nutcracker .yml
/usr/sbin/nutcracker
/usr/share/man/man8/nutcracker .8.gz


下面是来自oschina的简介

Twemproxy 是一个快速的单线程代理程序,支持 Memcached ASCII协议和更新的Redis协议。它全部用C写成,使用Apache 2.0 License授权。项目在Linux上可以工作,而在OSX上无法编译,因为它依赖了epoll API.

特性:

  • 速度快

  • 轻量级

  • 维护持久的服务器连接

  • Keeps connection count on the backend caching servers low.

  • 启用请求和响应的管道

  • 支持代理到多个服务器

  • 同时支持多个服务器池

  • 多个服务器自动分享数据

  • 实现了完整的 memcached ascii 和 redis 协议.

  • 服务器池配置简单,通过一个 YAML 文件即可

  • Supports multiple hashing modes including consistent hashing and distribution.

  • 可配置在失败时禁用某个节点

  • Observability through stats exposed on stats monitoring port.

  • 支持 Linux, *BSD, OS X and Solaris (SmartOS)


MD5值

1
aef8d577a88820372e781d251da71dba  twemproxy-0.4.0-2.el7.centos.src.rpm


参考文档

https://github.com/twitter/twemproxy

http://www.oschina.net/p/twemproxy


update-20151101

nutcracker.service

1
2
3
4
5
6
7
8
9
10
11
12
[Unit]
Description=nutcracker - High performance proxy server for memcached/redis
After=network.target
 
[Service]
Type=simple
ExecStartPre=/usr/sbin/nutcracker -t -c /etc/nutcracker/nutcracker.yml
ExecStart=/usr/sbin/nutcracker -c /etc/nutcracker/nutcracker.yml
ExecReload=/bin/kill -HUP $MAINPID
 
[Install]
WantedBy=multi-user.target