`

twemproxy配置详解

阅读更多
twemproxy的配置信息填写在nutcracker.yml之中,默认的查找位置是在conf目录下,也可以通过-c参数指定。

nutcracker.yml的例子:

redis1:
  listen: 10.18.129.48:11299
  redis: true
  hash: fnv1a_64
  distribution: ketama
  auto_eject_hosts: true
  timeout: 400
  server_retry_timeout: 2000
  server_failure_limit: 1
  servers:
   - 10.18.129.48:6379:1
   - 10.18.129.48:9898:1



详细的配置信息如下:

listen
twemproxy监听的端口。可以以ip:port或name:port的形式来书写。

 hash
可以选择的key值的hash算法:
>one_at_a_time
>md5
>crc16
>crc32 (crc32 implementation compatible with libmemcached)
>crc32a (correct crc32 implementation as per the spec)
>fnv1_64
>fnv1a_64
>fnv1_32
>fnv1a_32
>hsieh
>murmur
>jenkins

如果没选择,默认是fnv1a_64。

hash_tag
hash_tag允许根据key的一个部分来计算key的hash值。hash_tag由两个字符组成,一个是hash_tag的开始,另外一个是hash_tag的结束,在hash_tag的开始和结束之间,是将用于计算key的hash值的部分,计算的结果会用于选择服务器。

例如:如果hash_tag被定义为”{}”,那么key值为"user:{user1}:ids"和"user:{user1}:tweets"的hash值都是基于”user1”,最终会被映射到相同的服务器。而"user:user1:ids"将会使用整个key来计算hash,可能会被映射到不同的服务器。

distribution
存在ketama、modula和random3种可选的配置。其含义如下:

    ketama
ketama一致性hash算法,会根据服务器构造出一个hash ring,并为ring上的节点分配hash范围。ketama的优势在于单个节点添加、删除之后,会最大程度上保持整个群集中缓存的key值可以被重用。

    modula
modula非常简单,就是根据key值的hash值取模,根据取模的结果选择对应的服务器。

    random
random是无论key值的hash是什么,都随机的选择一个服务器作为key值操作的目标。

timeout
单位是毫秒,是连接到server的超时值。默认是永久等待。

backlog
监听TCP 的backlog(连接等待队列)的长度,默认是512。

preconnect
是一个boolean值,指示twemproxy是否应该预连接pool中的server。默认是false。

redis
是一个boolean值,用来识别到服务器的通讯协议是redis还是memcached。默认是false。

server_connections
每个server可以被打开的连接数。默认,每个服务器开一个连接。

auto_eject_hosts
是一个boolean值,用于控制twemproxy是否应该根据server的连接状态重建群集。这个连接状态是由server_failure_limit阀值来控制。
默认是false。

server_retry_timeout
单位是毫秒,控制服务器连接的时间间隔,在auto_eject_host被设置为true的时候产生作用。默认是30000 毫秒。

server_failure_limit
控制连接服务器的次数,在auto_eject_host被设置为true的时候产生作用。默认是2。

servers
一个pool中的服务器的地址、端口和权重的列表,包括一个可选的服务器的名字,如果提供服务器的名字,将会使用它决定server的次序,从而提供对应的一致性hash的hash ring。否则,将使用server被定义的次序。
分享到:
评论

相关推荐

    Twemproxy 0.4.1

    **Twemproxy详解** 1. **基本概念**:Twemproxy,又名Nutcracker,是由Twitter开源的一个轻量级、高性能的代理服务,主要应用于分布式内存存储系统,如Redis和Memcached。它的工作原理是接收来自客户端的命令,转发...

    twemproxy源码包

    "安装":意味着我们需要了解如何从源码包中构建和安装twemproxy,这通常涉及到编译器、依赖库的安装,以及执行配置脚本和编译命令。 **知识点详解** 1. **Twemproxy简介**:Twemproxy(也称为nutcracker)是一个...

    twemproxy_v0.5+autoconf-2.69.rar | twemproxy版本为2021年11月最新版

    7. **配置管理**:twemproxy的配置文件允许用户定义服务器池,包括每个服务器的权重、超时设置、连接池大小等参数,便于根据实际需求调整缓存系统。 8. **监控与日志**:为了确保系统的稳定运行,twemproxy提供了...

    基于redis的分布式缓存系统架构分析_张威.pdf

    在主从切换时,agent负责更新Twemproxy配置并重启,确保系统的高可用性。尽管如此,仍有改进空间,例如优化主从切换的通知机制,以便更快地识别并处理切换事件。 总结来说,基于Redis的分布式缓存系统通过Twemproxy...

    开涛高可用高并发-亿级流量核心技术

    20.3.4 Redis+Twemproxy配置 389 20.3.5 Mysql+Atlas配置 390 20.3.6 Java+Tomcat安装 394 20.3.7 Java+Tomcat逻辑开发 395 20.3.8 Nginx+Lua逻辑开发 401 21 使用OpenResty开发商品详情页 405 21.1 技术选型 407 ...

    nutcracker-0.4.0.tar.gz

    《Nutcracker(Twemproxy):Twitter开源的C语言代理服务器详解》 Nutcracker,又称为Twemproxy,是Twitter开源的一款轻量级、高性能的代理服务器,专为Memcached和Redis设计,用于提高分布式缓存系统的性能和可...

    借鉴nginx特性应用于其他项目-Nginx多进程高并发、低时延、高可靠机制在缓存代理中的应用1

    Worker 进程模型详解在 Nginx 的设计中,Master 进程主要负责接收来自客户端的连接请求,然后将这些请求分发给 Worker 进程处理。Master 进程不直接处理请求,而是通过事件驱动模型(epoll)来监控 Worker 进程的...

    memcached服务器软件

    **Memcached服务器软件详解** Memcached是一款高性能、分布式内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库负载,提高数据访问速度。它的工作原理是将数据存储在内存中,以便快速检索,从而实现高速的...

    Java思维导图xmind文件+导出图片

    Redis高性能集群之Twemproxy of Redis 数据存储 MongoDB NOSQL简介及MongoDB支持的数据类型分析 MongoDB可视化客户端及JavaApi实践 手写基于MongoDB的ORM框架 MongoDB企业级集解决方案 MongoDB聚合、索引及...

    redis数据库集群部署

    - **定义**:代理分片是指通过代理服务器(如Twemproxy、Codis等)来实现数据分片和路由的功能。 - **优点**: - 业务程序无需关心后端Redis实例的具体情况,降低了开发复杂度。 - 维护较为方便,易于实现高可用。...

    5_redis.docx

    - **配置文件详解**:Redis的配置文件通常位于安装目录下,名为`redis.conf`。在该文件中可以设置Redis服务器的各种参数,例如监听地址、端口号、密码验证、持久化方式等。例如,通过设置`databases 16`来开启16个...

    Memcached服务器(windows版本和Windows server版本)

    **Memcached服务器详解** Memcached是一款高性能的分布式内存对象缓存系统,主要用于减轻数据库的负载,提高Web应用的性能。它的工作原理是将数据存储在内存中,通过键值对的形式进行访问,使得数据的读取速度大大...

    运维部-redis服务

    ### Redis运维知识点详解 #### 一、Redis简介与特点 Redis是一种开源的、支持网络通信的、基于内存的键值对存储系统,采用ANSI C语言编写。它提供了丰富的数据结构支持,包括字符串(Strings)、哈希(Hashes)、列表...

    NineData稳定高效的Redis数据同步解决方案.pdf

    #### 二、产品优势详解 **1. 高效、稳定的同步服务** - **全量同步**:NineData在4c8g规格下的全量同步性能相较于阿里云DTS提升了70%,相比Redis-Shake则高出50%。 - **增量同步**:在1c2g规格下,NineData的增量...

    03_redis 主从复制 Redis集群和哨兵模式.docx

    ### Redis 主从复制、集群与哨兵模式详解 #### 一、Redis 主从复制 **主从复制**是Redis中最基础也是最常用的架构之一。它主要用于实现数据的冗余备份和读写分离。 ##### 1.1 主从模式概述 - **数据库分类**:在...

    laravel中Redis队列监听中断的分析

    在 Laravel 框架中,Redis 被广泛用于实现任务队列,它能有效地处理大量异步任务,提升应用...- laravel项目利用twemproxy部署redis集群的完整步骤 这些文章将帮助你更好地理解和实践 Laravel 中的 Redis 集成及优化。

Global site tag (gtag.js) - Google Analytics