namespace-ы при использовании нескольких memcached-ов
Монашёв Михаил
postmaster at softsearch.ru
Tue Feb 19 18:00:00 MSK 2008
Здравствуйте.
Столкнулись с проблемой некорректного отображения ключиков на
несколько мемкашед-серверов при включённом балансере 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 at softsearch.ru
ICQ# 166233339
http://michael.mindmix.ru/
Без бэкапа по жизни.
More information about the nginx-ru
mailing list