2015-06-09 3 views
1

Для запроса на основе браузера с липким сеансом истинный балансировщик нагрузки может ограничить запрос на одну JVM из нескольких JVM в кластере.Важная сессия для вызовов API для обслуживания

Но если запрос исходит от клиента REST, а не любого браузера, как балансировка нагрузки может ограничивать запросы на один JVM, даже липкий сеанс устанавливается как истинный? Любая идея, пожалуйста.

ответ

3

Клиент REST, используемый для вызова API REST API и REST API, должен быть неактивен, т. Е. Полная информация о обработке запроса должна присутствовать в самом запросе, поэтому запрос не должен зависеть от каких-либо данных сеанса.

Если ваш API зависит от данных сеанса, то в действительности он не следит за некоторыми принципами REST.

+0

Спасибо за ответ Himanshu. Фактически, наше приложение является своеобразным анкетом. Следовательно, когда пользователь выполняет опрос, мы сохраняем ответы в кеше для этого конкретного пользователя, а затем фиксируем базу данных после того, как опрос достигнут до конца. На самом деле мы не используем никакого централизованного кеша, а также не реплицируем данные кэша в JVM, поэтому мы должны придерживаться одной JVM для всех запросов, поступающих от одного и того же пользователя. Теперь, в этом случае, у вас есть идея, как решить эту проблему с липкой сессией? –

1

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

Смежные вопросы