`

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被定义的次序。
分享到:
评论

相关推荐

    keepalive+twemproxy+ redis主从安装配置的例子(linux)

    在构建高可用性、高并发的Redis集群时,`Keepalive`、`Twemproxy`和Redis的主从配置是常见的技术组合。这些组件在分布式系统中起到关键作用,确保数据的可靠性和服务的稳定性。下面我们将详细探讨这三个组件以及它们...

    Twemproxy 0.4.1

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

    Laravel开发-laravel-twemproxy

    同时,根据实际负载调整 twemproxy 的配置,如连接池大小、超时设置等,以达到最佳性能。 总之,通过 Laravel 开发中的 twemproxy 集成,开发者可以充分利用缓存代理的优势,提高应用的响应速度和可扩展性。了解并...

    twemproxy源码包

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

    cpp-多线程版的Twemproxy

    **cpp-多线程版的Twemproxy** `Twemproxy`,又称为`nutcracker`,是由Twitter开发的一款轻量级的代理服务,主要用于在Redis和Memcached等缓存系统与应用之间进行数据通信。它通过集中式的管理方式,优化了分布式...

    Twemproxy需要的依赖,加Redis安装包,tcl-8.5.7-6.el6.x86_64

    在Linux系统(特别是这里提到的基于Red Hat的CentOS 6)中安装和配置Twemproxy时,确实需要依赖一些特定的组件。 首先,让我们详细了解一下Twemproxy本身。Twemproxy是一个由Twitter开发的代理服务器,它允许你通过...

    Twemproxy 安装过程

    redis集群代理Twemproxy 安装过程,Twemproxy是一个专门为了这种nosql数据库设计的一款代理工具软件,这个工具软件最大的特征是可以实现数据的分片处理。所谓的分片指的是根据一定的算法将要保存的数据保存到不同的...

    twemproxy:用于管理 twemproxy 的厨师食谱

    描述安装/配置 twemproxy要求平台: Ubuntu食谱: 易于属性node['twemproxy']['install_method'] - 默认为"package" 。 node['twemproxy']['repo'] - 默认为"ppa"可以为零。 node['twemproxy']['config_file'] - ...

    twemproxy应用包

    twemproxy,也叫nutcraker。是一个twtter开源的一个redis和memcache代理服务器。 redis作为一个高效的缓存服务器,非常具有应用价值。但是当使用比较多的时候,就希望可以通过某种方式 统一进行管理。避免每个应用每...

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

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

    cpp-改造twemproxy使其支持ssdb协议ssdb的分片和ssdb的读写分离

    在twemproxy中实现读写分离,可能需要配置规则来确定哪些请求应该发送到主服务器,哪些应该发送到从服务器。这可能涉及到检查命令类型,比如`GET`通常用于读,`SET`用于写,然后根据这些信息进行路由。 6. **分片...

    twemproxy 0.4.1

    一个由twitter开源的c版本proxy,同时支持memcached和redis=。此版本为可以configure安装的版本

    第三章 Redis/SSDB+Twemproxy安装与使用

    Twemproxy支持TCP和UDP协议,具有低延迟、高性能的特点,且配置简单,适合快速部署。它并不处理数据,而是直接转发请求,因此对于复杂的业务逻辑,需要在客户端进行处理。 在安装Redis时,通常需要下载源码,编译并...

    cpp-美团twemproxy是memcached和redis协议的多进程快速和轻量级代理

    标题中的“cpp-美团twemproxy是memcached和redis协议的多进程快速和轻量级代理”揭示了这个项目的核心特性。首先,它是一个用C++编写的代理服务,这通常意味着它能够提供高效的性能和低级别的内存管理。其次,它是...

    Redis 存储分片之代理服务Twemproxy 测试.pdf

    Redis 存储分片之代理服务Twemproxy 测试.pdfRedis 存储分片之代理服务Twemproxy 测试.pdf

    twemproxy:这是一个 redis 代理,其主要功能就是在多个 redis 节点和访问者之间做路由分发

    twemproxy:这是一个 redis 代理,其主要功能就是在多个 redis 节点和访问者之间做路由分发:访问者不需要自己判断某个 key 该存储到哪一个 redis 节点或者该到哪个节点去获取某个 key 的值——这是一个负载均衡组件

    twemproxy-cookbook:安装和管理Twemproxy的食谱

    属性default.rb 属性类型描述选项默认['twemproxy'] ['mirror'] 细绳神器镜-- ['twemproxy'] ['version'] 细绳神器版本-- v0.4.1 ['twemproxy'] ['file_name'] 细绳工件名称默认为nil,因为它是从github档案中获取的...

    beholder:twemproxy 代理与 redis 哨兵一起工作以提供故障转移支持

    为了实现这一点,beholder 持续监控+switch-master事件,然后它会更新 twemproxy 配置文件并重新启动资源。依赖关系使用和 ,所以第一步是安装依赖项: $ pip install redis$ pip install pyyaml如果要在 linux ...

    twemsentinel:用于主更改事件和胡桃夹子配置的 Python twemproxy 代理

    TwemSentinel 用于主更改事件和胡桃夹子配置/重启的 Python 代理简单来说,它会更新 TwemProxy 并在 push notify for master-change (+switch-master) 时重启它。 import twemsentinelt = twemsentinel . ...

    twemproxy-master.zip

    Twemproxy通过引入一个代理层,可以将其后端的多台Redis或Memcached实例进行统一管理与分配,使应用程序只需要在Twemproxy上进行操作,而不用关心后面具体有多少个真实的Redis或Memcached存储,有了Twemproxy,...

Global site tag (gtag.js) - Google Analytics