gunzip и балансер для memcached-а

Maxim Dounin mdounin at mdounin.ru
Sun Feb 10 14:43:33 MSK 2008


Hello!

On Sun, Feb 10, 2008 at 01:12:57PM +0300, Михаил Монашёв wrote:

>Здравствуйте,
>
>Мы тут написали несколько патчиков http://openhack.ru/nginx-patched .
>
>1.  Балансировщик  запросов к мемкашеду. Сейчас каждый запрос стучится
>по  всем  мемкашедам  апстрима  пока  не  найдёт  нужного ключика. Это
>конечно  быстро,  но  неэффективно,  если  мемкашедов  много. Балансер
>http://openhack.ru/nginx-patched/wiki/MemcachedHash          позволяет
>обращаться   сразу   к  нужному  мемкашеду.  Реализовано  2  алгоритма
>вычисления   нужного  мемкашеда:  остаток  от  деления  на  количество
>серверов  и  Кетама.  Последний  позволяет добавлять новые мемкашеды с
>лишь  частичным перераспределением ключиков между мемкашедами. Эти два
>алгоритма     также    реализованы    в    нашем    перловом    модуле
>http://openhack.ru/Cache-Memcached-Fast/wiki/Ru .
>
>2.  Поддержка  502,  503,  504  и  507  ответов  от  бэкендов        в
>proxy_next_upstream.  Если  на бэкенде стоит nginx , а за ним Апач, то
>падение/торможение  апача приведёт к возврату 502 или 504 ошибки и она
>отдастся  юзеру, что не всегда хорошо. В proxy_next_upstream добавлены
>вышеперечисленные  коды  ответов,  дабы  избегать  подобных  ситуаций.
>Правда  над  быть  осторожным  с их использованием, ибо тяжёлый запрос
>может  завалить  все  бэкенды,  вместо одного. Большое спасибо Максиму
>Дунину за частичную реализацию.
>
>3.   http://openhack.ru/nginx-patched/wiki/MemcachedGzip  -  расжимает
>полученный  от  мемкашеда  ответ,  если  он  был  сжат и браузер хочет
>получить  несжатый  контент.  Экономится  память мемкашеда. Экономится
>процессор:  разсжатие  дешевле  сжатия  и  большинству браузером нужен
>именно сжатый контент.
>
>Сейчас  nginx  со всеми этими изменениями работает на рабочих серверах
>моих проектов. Т.е. можно предположить, что оно стабильное.
>
>Буду  признателен  за тестирование, пожелания и комментарии. Можно или
>тут или в листе на http://list.openhack.ru/Lists/talk/ .
>
>Если  Максим  Дунин  не  против  (ибо он автор части кода, связанной с
>proxy_next_upstream),  то  хотелось бы включить все перечисленные выше

Максим Дунин не против.

>разработки  в  главную  ветку. ngx_http_upstream_memcached_hash_module
>реализован  в  виде  независимого  модуля,  но  потребовал  3-х мелких
>патчиков     в    nginx.    memcached_gzip    -    это    доработанный
>ngx_http_gzip_module.

Я думаю было бы дофига полезно представить патчи с пояснениями 
отдельно, а модули - отдельно.

Maxim Dounin





More information about the nginx-ru mailing list