twemproxy的配置文件nutcracker.yml详解
2016-07-21 13:20
429 查看
twemproxy的配置文件nutcracker.yml详解 2015-08-26
16:25:12
分类: 服务器与存储
twemproxy的配置信息填写在nutcracker.yml之中,默认的查找位置是在conf目录下,也可以通过-c参数指定
以下是配置文件内容:
点击(此处)折叠或打开
alpha:
listen: 0.0.0.0:11111
hash: crc16
distribution: cluster
auto_eject_hosts: true
backlog: 2048
redis: true
server_retry_timeout: 200
server_failure_limit: 1
sds_rep: tcp://10.15.144.104:10300
sds_pub: tcp://10.15.144.104:10301
servers:
- 127.0.0.1:7000:1:group1
server1
- 127.0.0.1:7001:1:group2
server2
- 127.0.0.1:7002:1:group3
server3
- 127.0.0.1:7003:1:group1
slaver1
- 127.0.0.1:7004:1:group2
slaver2
- 127.0.0.1:7005:1:group3
slaver3
- 10.15.144.37:2014:1:eval
eval2
- 10.15.144.37:2014:1:eval
eval3
- 10.15.144.37:9100:1:syncdb
db1
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种可选的配置。其含义如下:
(1)ketama
ketama一致性hash算法,会根据服务器构造出一个hash ring,并为ring上的节点分配hash范围。ketama的优势在于单个节点添加、删除之后,会最大程度上保持整个群集中缓存的key值可以被重用。
(2)modula
modula非常简单,就是根据key值的hash值取模,根据取模的结果选择对应的服务器。
(3)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被定义的次序
16:25:12
分类: 服务器与存储
twemproxy的配置信息填写在nutcracker.yml之中,默认的查找位置是在conf目录下,也可以通过-c参数指定
以下是配置文件内容:
点击(此处)折叠或打开
alpha:
listen: 0.0.0.0:11111
hash: crc16
distribution: cluster
auto_eject_hosts: true
backlog: 2048
redis: true
server_retry_timeout: 200
server_failure_limit: 1
sds_rep: tcp://10.15.144.104:10300
sds_pub: tcp://10.15.144.104:10301
servers:
- 127.0.0.1:7000:1:group1
server1
- 127.0.0.1:7001:1:group2
server2
- 127.0.0.1:7002:1:group3
server3
- 127.0.0.1:7003:1:group1
slaver1
- 127.0.0.1:7004:1:group2
slaver2
- 127.0.0.1:7005:1:group3
slaver3
- 10.15.144.37:2014:1:eval
eval2
- 10.15.144.37:2014:1:eval
eval3
- 10.15.144.37:9100:1:syncdb
db1
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种可选的配置。其含义如下:
(1)ketama
ketama一致性hash算法,会根据服务器构造出一个hash ring,并为ring上的节点分配hash范围。ketama的优势在于单个节点添加、删除之后,会最大程度上保持整个群集中缓存的key值可以被重用。
(2)modula
modula非常简单,就是根据key值的hash值取模,根据取模的结果选择对应的服务器。
(3)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被定义的次序
相关文章推荐
- redis安装问题小结
- redis的导入导出需要特别注意的地方
- 使用 Redis 和 Python 构建一个共享单车的应用程序
- Redis偶发连接失败案例实战记录
- 使用C#实现读取系统配置文件的代码实例讲解
- Redis中实现查找某个值的范围
- win 7 安装redis服务【笔记】
- redis的hGetAll函数的性能问题(记Redis那坑人的HGETALL)
- Redis和Memcached的区别详解
- Redis02 使用Redis数据库(String类型)全面解析
- 分割超大Redis数据库例子
- Redis总结笔记(一):安装和常用命令
- Redis sort 排序命令详解
- 用Redis实现微博关注关系
- Redis实现信息已读未读状态提示
- redis中修改配置文件中的端口号 密码方法
- 在Ruby on Rails上使用Redis Store的方法
- 使用Memcache缓存mysql数据库操作的原理和缓存过程浅析
- Redis和Memcache的区别总结