I've been using Twemproxy 0.3.0 with redis 2.8 following configurations.
alpha:
listen: 10.3.0.71:22121
hash: fnv1a_64
distribution: ketama
auto_eject_hosts: true
redis: true
server_retry_timeout: 2000
server_failure_limit: 2
server_connections: 300
servers:
- xxx.0.0.1:6379:1 server01
- xxx.0.0.2:6380:1 server02
- xxx.0.0.3:6381:1 server03
I guess if server01 craches or does not reply over server_failure_limit then twemproxy ejects(removes) the server01 from alpha pool and works with consistent hashing for remained server02 and server03.
As a result, my expectation is broken.
Twemproxy did not auto eject crashed server (server01).
So, my test python client program faced on 'Connection refused' error in a cycle.
Is right my expectation? If not, how could I solve this problem?