Twemproxy 概述

Twemproxy(又称为nutcracker)是一个轻量级的Redis和Memcached代理,主要用来减少对后端缓存服务器的连接数。Twemproxy是由Twitter开源出来的缓存服务器集群管理工具,主要用来弥补Redis/Memcached 对集群(cluster)管理的不足。

antirez(Redis作者)写过一篇对twemproxy的介绍,他认为twemproxy是目前Redis 分片管理的最好方案,虽然antirez的Redis cluster正在实现并且对其给予厚望,但从现有的cluster实现上还是认为cluster除了增加Redis复杂度,对于集群的管理没有twemproxy来的轻量和有效。

谈到集群管理不得不又说到数据的分片管理(shard),为了满足数据的日益增长和扩展性,数据存储系统一般都需要进行一定的分片,如传统的MySQL进行横向分表和纵向分表,然后应用程序访问正确的位置就需要找的正确的表。这时候,这个数据定向工作一般有三个位置可以放:

  • 数据存储系统本身支持,Redis Cluster就是典型的试图在数据存储系统上支持分片;
  • 客户端支持,Memcached的客户端对分片的支持就是客户端层面的;
  • 代理支持,twemproxy就是试图在服务器端和客户端中间建代理支持;

twemproxy部署

yum install -y autoconf automake libtool

yum remove -y autoconf

wget ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
tar -zxvf autoconf-2.69.tar.gz
cd autoconf-2.69 
./configure --prefix=/usr
make && make install

wget http://ftp.gnu.org/gnu/automake/automake-1.14.tar.gz
tar -zxvf automake-1.14.tar.gz 
cd automake-1.14
./bootstrap.sh
./configure --prefix=/usr
make && make install

wget http://ftp.gnu.org/gnu/libtool/libtool-2.4.2.tar.gz

tar -zxvf libtool-2.4.2.tar.gz
cd libtool-2.4.2
./configure --prefix=/usr
make && make install

tar -zxvf twemproxy-0.4.0.tar.gz

cd /usr/local/twemproxy-test/twemproxy-0.4.0

autoreconf -fvi
./configure && make

vi /usr/local/twemproxy-test/twemproxy-0.4.0/conf/nutcracker.yml

server1:  
  listen: 127.0.0.1:1111  
  hash: fnv1a_64  
  distribution: ketama  
  redis: true  
  servers:  
   - 127.0.0.1:6379:1

/usr/local/twemproxy-test/twemproxy-0.4.0/src/nutcracker -d -c /usr/local/twemproxy-test/twemproxy-0.4.0/conf/nutcracker.yml

ps -aux | grep nutcracker

/usr/local/redis-test/redis-2.8.19/src/redis-cli -p 1111

get k1
set k1 v2
get k1

Twemproxy 配置

Twemproxy 通过nutcracker.yml文件配置

eshop-detail-test:  
  listen: 127.0.0.1:1111  
  hash: fnv1a_64  
  distribution: ketama  
  timeout:1000  
  redis: true  
  servers:  
   - 127.0.0.1:6379:1 test-redis-01 
   - 127.0.0.1:6380:1 test-redis-02

eshop-detail-test: redis集群的逻辑名称
listen:twemproxy监听的端口号
hash:hash散列算法
distribution:分片算法,一致性hash,取模,等等
timeout:跟redis连接的超时时长
redis:是否是redis,false的话是memcached
servers:redis实例列表,一定要加别名,否则默认使用ip:port:weight来计算分片,如果宕机后更换机器,那么分片就不一样了,因此加了别名后,可以确保分片一定是准确的

你的客户端,java/nginx+lua,连接twemproxy,写数据的时候,twemproxy负责将数据分片,写入不同的redis实例
   
如果某个redis机器宕机,需要自动从一致性hash环上摘掉,等恢复后自动上线

auto_eject_hosts: true,自动摘除故障节点
server_retry_timeout: 30000,每隔30秒判断故障节点是否正常,如果正常则放回一致性hash环
server_failure_limit: 2,多少次无响应,就从一致性hash环中摘除

Twemproxy的部署和配置详解相关推荐

  1. 1 企业实战(3) Redis服务部署和配置详解 (资源)

    前言: 环境介绍: CentOS 7.5 Redis 5.0.0 gcc 下载: http://download.redis.io/releases/ 安装redis: [root@localhost ...

  2. Kafka 环境部署与配置详解

    2019独角兽企业重金招聘Python工程师标准>>> 什么是Kafka Kafka是一种高吞吐量 的分布式发布订阅消息系统,有如下特性:1>.通过O(1)的磁盘数据结构提供消 ...

  3. haproxy安装部署以及配置详解

    haproxy安装部署 一. Haproxy简介 haproxy提供高可用性.负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案. ha ...

  4. linux下nginx部署以及配置详解

    1.下载源码包解压编译 启动多个,请看:在linux系统下安装两个nginx以及启动 查看nginx包路径:http://nginx.org/download/,两种下载方式: 1.在官网下载使用Xf ...

  5. asp.net 获取计算机配置_PBI Report Server 部署与配置详解

    12月18日追加:欢迎加入知乎-微软BI技术圈,一起讨论.分享包括PowerBI在内的一切BI话题! [前述]关于Power BI 报表服务器的安装与配置,国内外的教程有很多,但较为全面的介绍却少之又 ...

  6. Zabbix监控系统部署:配置详解

    1. 全局配置 ListenPort ,监听端口 ,取值范围为1024-32767,默认端口10051 SourceIP,外发连接源地址 LogType,日志类型:单独日志文件,系统文件,控制台输出 ...

  7. redis服务部署及配置详解

    Redis是一种高级key-value数据库.它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富.有字符串,链表,集合和有序集合.支持在服务器端计算集合的并,交和补集(diffe ...

  8. linux nginx权限配置文件,linux下nginx部署以及配置详解

    1.下载源码包解压编译 1.在官网下载使用Xftp上传到linux上(不推荐使用) 2.(推荐)在版本上选好,直接命令下载,如下:(下载nginx-1.16.1.tar.gz版本)建议到home目录执 ...

  9. dellr420部署os_戴尔dell poweredge r730服务器系统安装配置详解教程

    第一次给服务器安装的是ubantu系统: 首先我们开机进入小型BIOS设置一下RAID,或者进入服务器管理系统,在系统的BIOS中进行RAID设置: 开机后当看到出现< Ctrl > 时按 ...

最新文章

  1. 【prometheus API】删除指定指标数据
  2. JqueryMobile- 搭建主模板
  3. POJ 3280 Cheapest Palindrome
  4. Linux操作系统下三种配置环境变量的方法(linux下几种profile执行顺序)
  5. .net core 2.0部署到CentOS7系统
  6. 手把手教你玩转ARP包(四)
  7. JAVA程序设计----面向对象(上)
  8. Git 上传文件到 码云 gitee
  9. 敏捷:什么是用户故事(User Story)
  10. 毛氏生产:经常集体文化娱乐活动,有何利弊
  11. 量子加密欲应用到智能手机 让黑客流泪
  12. 电脑上有什么类似全能扫描王的软件?这4款扫描app1分钟帮你搞定几十张图片
  13. 一次Nginx 502问题解决
  14. 【数据结构】经典习题
  15. QQ心跳包格式分析 监听局域网QQ号代码
  16. 华为企业组网实例:VRRP+MSTP典型组网配置
  17. Arduino - 改造楼道门禁,使用密码开门
  18. Android 跳转到第三方应用(应用间的跳转)
  19. Item 1: Understand template type deduction
  20. 石英晶振应该如何存放,标准有哪些?

热门文章

  1. python字符串前面加f什么意思,浅析python字符串前加r、f、u、l 的区别
  2. 如何通过中国电信app进行宽带套餐变更
  3. 上海电力大学数据科学与计算机学院,广受关注!上海电力大学计算机科学与技术学院2021研究生招生直播咨询会成功举办!...
  4. Android产品研发(十八)--webview问题集锦
  5. java时间戳的比较_Java时间戳比较
  6. 抽样分布:经常听到的卡方分布、t分布等的含义是啥?
  7. linux下开放sftp端口,在Linux系统中更改默认的SFTP端口及使用新的SFTP端口
  8. 【SQL基础MICK读书笔记】
  9. mx250可以机器学习吗_图灵未上,性能小增:今年轻薄本到底要不要上MX 250
  10. 作业帮直播课APP分析