Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
namespace-ы при использовании нескольких memc ached-ов
Здравствуйте.
Столкнулись с проблемой некорректного отображения ключиков на
несколько мемкашед-серверов при включённом балансере memcached_hash (
http://openhack.ru/nginx-patched/wiki/MemcachedHash ). Проблема в том,
что перловые модули Cache::Memcached и Cache::Memcached::Fast, которые
записывают ключики в мемкашед, при расчёте сервера используют ключ без
нэйспейса. А в конфиге nginx-а можно было задать только ключик.
Поэтому нейспейс писался прямо в ключик:
set $memcached_key "my-namespace$uri$is_args$args";
И это прекрасно работало, когда не было балансера (ибо nginx обходил
все мемкашед-сервера в поисках ключа).
Но чтобы корректно вычислить мемкашед-сервер нужен только ключик без
неймспейса. По этой причине мы добавили переменную
$memcached_namespace:
set $memcached_namespace "my-namespace";
set $memcached_key "$uri$is_args$args";
С ней всё будет работать как и прежде, но перед отправкой запроса к
мемкашеду, к ключу будет препендиться неймспейс, а мемкашед-сервер
будет вычисляться только от ключа.
Подробнее тут: http://openhack.ru/nginx-patched/wiki/MemcachedHash
--
С уважением,
Монашёв Михаил, SoftSearch.ru
mailto:postmaster@xxxxxxxxxxxxx
ICQ# 166233339
http://michael.mindmix.ru/
Без бэкапа по жизни.
|