Прилипания HTTP-запросов в контексте прокси-сервера

Прилипания HTTP-запросов в контексте прокси-сервера

Назад

Сегодня пользователи ожидают от веб-приложений мгновенного отклика. Оптимизация производительности становится критически важной задачей для разработчиков. Один из способов повысить эффективность работы серверов и уменьшить время отклика – прилипание http-запросов.

Первая картинка статьи/новости

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

Меня зовут Ринат Фатхуллин, я владелец продукта Platform V SynGX – веб- и обратного прокси-сервера на базе Nginx. Наш продукт полностью заместил Nginx Plus в Сбере, в том числе благодаря расширенной поддержке «липких» сессий. 

В этой статье подробно рассмотрим сценарии использования и особенности этого подхода. Материал будет особенно интересен специалистам, которые занимаются обеспечением бесперебойной работы высоконагруженных сервисов. 

Зачем нужны «липкие» сессии

В контексте прокси-сервера прилипание, или «липкие» сессии, – это механизм, позволяющий сохранять связь между первым и последующими HTTP-запросами клиента и узлом в группе балансировки, который обрабатывает эти запросы. Наличие связи означает, что все запросы клиента с определенными свойствами прокси-сервер будет перенаправлять на один и тот же узел в группе балансировки. 

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

Механизм прилипания решает еще одну важную задачу – распределение клиентских запросов на основании определенных характеристик. Например, зная IP клиентского запроса, мы можем определить страну или город клиента с помощью базы MaxMindDB и перенаправить запрос на узел, который обслуживает все клиентские запросы из этой страны или города. 

Как правило, разработчики веб-сервисов сами определяют, необходимо ли им прилипание клиентских запросов, чтобы улучшить клиентский опыт и пользовательские характеристики сервиса. Обычно прилипание запросов требуется в рамках сеанса пользователя по работе с сервисом. Пример такого сеанса – 15 минут, которые человек потратил на посещение интернет-магазина, поиск и отбор товаров, оформление заказа.

Прилипание дает ряд преимуществ для сервисов, которые поддерживают создание сеанса:

Но несмотря на очевидные преимущества у прилипания запросов есть и ряд недостатков: 

Все эти моменты стоит учитывать, если вы планируете воспользоваться возможностями «липких» сессий.

Полный текст статьи на Хабре

Что еще почитать?

new photo1

Совместимость Platform V SynGX и Astra Linux SE

Новость

13.11.2024

«Группа Астра» подтверждает работоспособность и корректность совместного функционирования операционной системы Astra Linux SE с веб- и обратным прокси-сервером Platform V SynGX.

new photo1

SynGX vs Nginx

Статья

28.08.2024

Platform V SynGX – высокопроизводительный и безопасный сервер для балансировки нагрузки и маршрутизации запросов к веб-ресурсам, критически важным для бизнеса. При этом он обогащен дополнительной функциональностью, которая позволяет повысить производительность прокси-сервера, упростить его мониторинг и настройку, а также добавить собственную логику обработки запросов на языках Lua и JS.

new photo1

Вебинар: миграция с Nginx и Openresty на SynGX

Событие

07.08.2024

Отказоустойчивая работа сайта и онлайн-сервисов — приоритетная задача для любого инженера. В высоконагруженных сценариях при большом количестве пользователей базовой функциональности Nginx недостаточно – нужны более гибкие инструменты работы с балансировкой и маршрутизацией. А еще нужно дополнительно собирать большое количество различным метрик и, в идеале, добавлять собственную логику обработки запросов.

Связаться с нами

Задать вопрос