Мы запускаем экземпляр mongodb для хранения данных в коллекциях, с этим проблем нет, и mongo является нашим основным хранилищем данных.
Сегодня мы собираемся разработать поддержку Oauth2 для продукта и должны хранить пользовательские сеансы (ключ безопасности, токен доступа и т. д.), а токен доступа должен быть проверен на сервере аутентификации только после определенного тайм-аута, чтобы не каждый запрос будет ожидать проверки сервером аутентификации. Первый запрос на защищенный ресурс (создание) всегда должен быть аутентифицирован на сервере аутентификации. Любой последующий запрос будет проверяться внутри (кешировать) и проверять внутренний тайм-аут, и только если он истек, будет выдан другой запрос на сервер аутентификации.
Чтобы решить эти требования, мы должны ввести какой-то распределенный кеш, для хранения (с поддержкой TTL) пользовательских сессий и т. д., истечение срока его действия на основе ttl... Я писал об этом выше.
Здесь два варианта:
- сохранить сеанс пользователя в hazelcast и поделиться им со всеми серверами приложений — хороший выбор, чтобы сохранить весь сеанс пользователя на карте выселения.
- хранить пользовательские сессии в MongoDb — и делать то же самое.
Видите ли вы какие-либо преимущества использования Hazelcast вместо хранения временных данных внутри Mongo? О каких значительных улучшениях производительности вы знаете?
Я новичок в Hazelcast, поэтому не знаю обо всех ключевых функциях.