基于twemproxy的redis分布式应用

标签: twemproxy redis 分布 | 发表时间:2014-07-10 12:04 | 作者:cpjsjxy
出处:http://www.iteye.com
根据以往的测试结论,单个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



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [twemproxy redis 分布] 推荐:

Redis分布式中间件TwemProxy

- - 企业架构 - ITeye博客
twemproxy,也叫nutcraker. 是一个twtter开源的一个redis和memcache代理服务器. redis作为一个高效的缓存服务器,非常具有应用价值. 但是当使用比较多的时候,就希望可以通过某种方式 统一进行管理. 避免每个应用每个客户端管理连接的松散性. 搜索了不少的开源代理项目,知乎实现的python分片客户端.

基于twemproxy的redis分布式应用

- - 数据库 - ITeye博客
根据以往的测试结论,单个redis的实例的内存总量最好控制在8G以内(最大不能超过20G),而实际上应用对redis的内存的需求可能会远远大于8G,因此需要一个保持redis server性能不下降,但可以有效扩充redis server的容量的方案. twemproxy是一个恰当的选择. twemproxy,也叫nutcraker.

Redis 代理服务Twemproxy

- - CSDN博客云计算推荐文章
      当我们有大量 Redis 或 Memcached 的时候,通常只能通过客户端的一些数据分配算法(比如一致性哈希),来实现集群存储的特性. 虽然Redis 2.6版本已经发布Redis Cluster,但还不是很成熟适用正式生产环境.  Redis 的 Cluster 方案还没有正式推出之前,我们通过 Proxy 的方式来实现集群存储.

Twemproxy – Twitter 开源的 Redis proxy

- - NoSQLFan
在去年的QCon London2012 大会上,Twitter 发表了题为 《 Timelines @ Twitter》的演讲,里面提到以 Redis作为其timeline的主要存储,目前目测全球范围内,Twitter可能是Redis的最大用户了(或者是新浪微博. 而今天我们要说的这个 Twemproxy,是 Twitter 开源出来的 Redis 和 Memcached 代理.

Twemproxy——针对MemCached与Redis的代理

- - InfoQ cn
Twemproxy是一个代理服务器,可以通过它减少 Memcached或 Redis服务器所打开的连接数. Twemproxy有何用途呢. 通过代理的方式减少缓存服务器的连接数. 自动在多台缓存服务器间共享数据. 通过不同的策略与散列函数支持一致性散列. 运行在多个实例上,客户端可以连接到首个可用的代理服务器.

基于Twemproxy的Redis集群方案

- - 互联网 - ITeye博客
由于单台redis服务器的内存管理能力有限,使用过大内存redis服务器的性能急剧下降,且服务器发生故障将直接影响大面积业务. 为了获取更好的缓存性能及扩展型,我们将需要搭建redis集群来满足需求. Twemproxy是memcached和redis协议的代理服务器,并能有效减少大量连接对redis服务器的性能影响,它提供的主要特性如下:.

[转][转]Twemproxy——针对MemCached与Redis的代理

- - heiyeluren的blog(黑夜路人的开源世界)
Twemproxy是一个代理服务器,可以通过它减少 Memcached或 Redis服务器所打开的连接数. Twemproxy有何用途呢. 通过代理的方式减少缓存服务器的连接数. 自动在多台缓存服务器间共享数据. 通过不同的策略与散列函数支持一致性散列. 通过配置的方式禁用失败的结点. 运行在多个实例上,客户端可以连接到首个可用的代理服务器.

BDRP分布式redis集群

- - 百度运维团队技术博客
BDRP(baidu distributed redis platform)是包含 twemproxy, redis,redis-sentinel等多个模块开发的分布式redis平台. bdrp已经在github上进行了开源, bdrp的github项目点这里. 目前redis集群架构主要有以下几个组件: twemproxy:redis的代理系统,可以选择多种数据分片算法 redis:集群的redis存储节点 sentinel:redis官方的集群高可用组件,可以监控redis主节点故障,并进行主备切换.

如何用redis实现分布式锁

- - CSDN博客数据库推荐文章
redis作为一个强大的key/value数据库,其实还可以用来实现轻量级的分布式锁. 最早官方在 SETNX命令页给了一个实现:. 不过这个方案有漏洞,就是release lock用的DEL命令不支持cas删除(delete if current value equals old value),这样忽略race condition将会出现问题:.

使用Scrapy-redis实现分布式爬取

- - 标点符
Scrapy是一个比较好用的Python爬虫框架,你只需要编写几个组件就可以实现网页数据的爬取. 但是当我们要爬取的页面非常多的时候,单个主机的处理能力就不能满足我们的需求了(无论是处理速度还是网络请求的并发数),这时候分布式爬虫的优势就显现出来. 而Scrapy-Redis则是一个基于Redis的Scrapy分布式组件.