twemproxy的配置文件nutcracker.yml详解

分类: 服务器与存储

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

以下是配置文件内容:

点击(此处)折叠或打开

  1. alpha:
  2.   listen: 0.0.0.0:11111
  3.   hash: crc16
  4.   distribution: cluster
  5.   auto_eject_hosts: true
  6.   backlog: 2048
  7.   redis: true
  8.   server_retry_timeout: 200
  9.   server_failure_limit: 1
  10.   sds_rep: tcp://10.15.144.104:10300
  11.   sds_pub: tcp://10.15.144.104:10301
  12.   servers:
  13.    - 127.0.0.1:7000:1:group1 server1
  14.    - 127.0.0.1:7001:1:group2 server2
  15.    - 127.0.0.1:7002:1:group3 server3
  16.    - 127.0.0.1:7003:1:group1 slaver1
  17.    - 127.0.0.1:7004:1:group2 slaver2
  18.    - 127.0.0.1:7005:1:group3 slaver3
  19.    - 10.15.144.37:2014:1:eval eval2
  20.    - 10.15.144.37:2014:1:eval eval3
  21.    - 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被定义的次序


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值