Долгосрочные сеансы балансировки нагрузки, требующие состояния сервера - PullRequest
0 голосов
/ 05 июля 2011

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

Ответы [ 2 ]

1 голос
/ 16 июля 2011

Простое решение - настроить балансировщик нагрузки для использования липких сессий.балансировщик нагрузки свяжет пользовательский сеанс с сервером № 8, а затем последующие запросы из того же сеанса будут автоматически перенаправлены на тот же сервер (сервер 8).

0 голосов
/ 05 июля 2011

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

Если вам нужна липкая маршрутизация, то как вы ее реализуете, во многом зависит от того, как вы предлагаете работать с недоступным сервером - выполняете ли вы отработки отказа при запросах? Или просто прекратить обработку запросов, которые были бы направлены на этот сервер?

Сначала я подумал, что это очень глупый вопрос - какая уместность, если вы не пишете свой собственный прокси / балансировщик нагрузки (в этом случае вы уже должны знать, что он отвечает), но есть доступные прокси, которые позволяют вам реализовать ваш собственный директор.

Таким образом, в конечном итоге все сводится к тому, какие характеристики сеанса видны в HTTP-запросе. Поскольку IP-адрес может изменить средний поток, единственной практической характеристикой, которую вы можете использовать, является идентификатор сеанса - обычно реализуемый как cookie.

...