Memcached Pool - Outtage causa atraso maior no tempo de resposta

1

Eu tenho vários servidores de cache que são adicionados a um pool virtual na camada PHP através da API Memcached :: addServers (). Durante o teste de tolerância a falhas, observei que colocar um dos servidores memcached off-line fazia com que os tempos de resposta do aplicativo aumentassem para 3-6 segundos por solicitação, quando normalmente levam de 5 a 2 segundos por solicitação.

Eu implementei essas configurações seguindo os conselhos desta postagem no blog :

$memcached = new Memcached();
$memcached->setOption(Memcached::OPT_CONNECT_TIMEOUT, 10);
$memcached->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT);
$memcached->setOption(Memcached::OPT_REMOVE_FAILED_SERVERS, true);
$memcached->setOption(Memcached::OPT_RETRY_TIMEOUT, 1);
$memcached->addServers($servers);

No entanto, essas configurações não parecem resolver o problema de atrasos. A única maneira de resolver o problema é reintroduzir o servidor novamente no pool e, em seguida, o atraso desaparece. Obviamente, esta não é uma solução ideal, pois pode levar 15 minutos para resolver o problema na produção (ou seja, a página 3am temida).

Ao pesquisar esse problema, me deparei com este post , que discute o uso de moxi e Parece interessante, mas antes de eu introduzir mais uma camada em nosso aplicativo, gostaria de saber como os outros resolveram esses problemas de atraso?

    
por Mike Purcell 09.10.2014 / 22:10

1 resposta

0

Acabei instalando o twemproxy (proxy do Memcached pelo Twitter), pois ele ejetará automaticamente os hosts que não respondem. Esta API resolveu meus problemas de atraso.

    
por 19.02.2015 / 00:52