Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

S.A.N nginx-forum на forum.nginx.org
Пн Май 30 17:19:03 UTC 2016


>  Если я правильно понял этот набор слов, предлагается вместо кэша
> nginx
>  использовать кэш memcached'а, почему эта связка должна быть
> эффективнее
>  чем один кэш nginx'a?

Нет, будет использоваться только кеш Nginx, но бекенды получат возможность
получать по ключу, тело (body) кеша Nginx, по протоколу Memcached, если в
Nginx, нет закешированого ответа или кеш требует ревалидации, тогда Nginx
переводит этот GET запрос из протокола Memcached в GET запрос протокола
HTTP, и отправляет его на бекенд, для получения нового ответа или статуса
304.

По сути Nginx сервер будет эмулировать работу Memcached сервера, тогда
бекенды будут работать с Nginx как с Memcached.

Протокол HTTP не очень подходит для быстрого общения бекендов между собой
внутри датацентра, HTTP слишком многословен, часто тело JSON ответа короче
HTTP заголовков.

Когда бекенд делает запрос к другому бекенду через Nginx, его интересует код
ответа, длина ответа и само тело ответа, все остальное это мусор который
нужен только браузеру, по этому протокол Memcached подходит лучше, плюс этот
протокол мультиплецируется :)

Такая связка во многом лучше чем работать с реальным сервером Memcached.

1. Nginx асинхроный и многопоточный, Memcached однопоточный и запросы
обрабатывает последовательно.
2. Nginx имеет опции кеша cache_lock, use_stale, min_uses.
3. Nginx умеет ревалидировать кеш
4. Нет холодного старта и размер кеша не ограничен оперативной памятью.
5. Нет лишнего звена и зависимости от Memcached сервера

Ну как вам?

Posted at Nginx Forum: https://forum.nginx.org/read.php?21,266693,267235#msg-267235



Подробная информация о списке рассылки nginx-ru