Нужна помощь с конфигурацией nginx для использования consistent hashing с несколькими memcache серверами.
Сейчас ми пытаемся реализовать задачу с помощью ngx_http_upstream_consistent_hash (http://wiki.nginx.org/HttpUpstreamConsistentHash#consistent_hash)
пытались пример со страницы модуля, а также наш пример.
Nginx conf:
upstream mempool3 {
consistent_hash $request_uri;
server 127.0.0.1:11212;
server 127.0.0.1:11213;
keepalive 10;
}
запись:
<?php
$mem = new Memcached();
$mem->addServer('127.0.0.1','11212',50);
$mem->addServer('127.0.0.1','11213',50);
for($i=0; $i< 100; $i++){
$mem->set('/getmem/'.$i, 'data from '.$i.'<br>');
}
тест на считывание nginx+ssi:
<?php for($i=0; $i<100;$i++){?>
<?php echo $i;?>. <!--#include virtual="/getmem/<?php echo $i;?>" --><br/>
<?php }
результат:
отдача приблизительно половина записей. Если в nginx по очереди указывать все сервера, то видно что php записала все данные правильно.
ENV INFO:
OS: Centos 6.3
NGINX: 1.2.2 (Compiled with ngx_http_upstream_consistent_hash)
PHP: 5.3.15 (memcache.hash_strategy=consistent)
Memcache: 1.4.13