Подтвердить что ты не робот

Что использовать для управления сессиями?

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

RDBMS - медленнее. Лучше используется для других данных.

Memcached - вы не можете удалить сервер memcached без потери сеансов

Redis - исправляет проблему memcached, но как насчет простоты масштабируемости? Отказоустойчивость?

Кассандра - обладает хорошей отказоустойчивостью. Плюсы и минусы?

MongoDB, другие?

Спасибо!

4b9b3361

Ответ 1

Лично я использую Cassandra для сохранения данных сеанса php. Он хранит его в одном столбце в одной строке с session_id: {session_data_as_json}, и я устанавливаю TTL в столбце, чтобы он автоматически очищал мусор. Работает.

Я пошел с cassandra, поскольку у него уже есть все другие пользовательские данные... Для кэширования я включил APC во всех веб-серверах front end и не имел никаких проблем...

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

Боковое замечание, я начал работать над собственным обработчиком сеанса php → cassandra: https://github.com/sdolgy/php-cassandra-sessions - это показывает, как TTL устанавливаются с помощью PHPCassa и Cassandra

Ответ 2

Redis - исправляет проблему memcached, но как насчет легкости масштабируемость? Отказоустойчивость?

Redis поддерживает replication и предстоящий cluster должен также поддерживать очертание данных на нескольких узлах.

Ответ 3

Немного поздно, но, возможно, кто-то заинтересован в продолжении. Мы используем Cassandra в качестве нашего магазина сеансов и получаем доступ к ней через spring -session (с добавлением в дом spring -session-cassandra addon). Объекты в сеансе сортируются/неаршаллируются через Kryo (https://github.com/EsotericSoftware/kryo).

Эта настройка дает нам сеанс между 1 и 2 мс и сэкономить менее 1 мс:

введите описание изображения здесь

введите описание изображения здесь

Но в зависимости от нагрузки на кольцо в отклике есть несколько выбросов:

введите описание изображения здесь