У нас есть веб-приложение JAVA, которое использует postgres (единую базу данных с ведомым устройством) для хранения всех важных данных.
Сейчас мы переходим от настройки одного сервера к нескольким серверам, в связи с чем мне нужно внести некоторые изменения для удовлетворения новых требований.
1) Не прилипающие идентификаторы сеанса для балансировки нагрузки и допуска разделов.
2) Кэш часто читаемых данных, доступный со всех веб-серверов (альтернатива In Memory / Memcache).
3) Очереди (электронная почта, SMS, задачи, выполняемые в кластере). Как правило, все они должны выполняться через API-интерфейс xml или очистку экрана.
Важно избегать дублирования обработки задач, но иногда это может произойти: -)
4) Постоянное хранение запросов и ответов API (много XML, много строк, но небольшое количество столбцов). (возможно, архивируйте, удаляя старые запросы и ответы, чтобы сохранить небольшой набор данных).
5) Вход в общее место. Стол будет продолжать расти. Также мне нужен инструмент для доступа к журналам производства, не останавливая их. Какой-то поиск должен быть возможен по времени и / или строке поиска.
Я хочу, чтобы единственное решение отвечало всем этим требованиям и рассматривало redis, mongo и hazelcast (в порядке моих личных предпочтений) в качестве возможных альтернатив.
Другие важные соображения:
1) Меньше вторжения в наш код.
2) Простые стратегии резервного копирования / репликации. По крайней мере, Мастер Раб.
3) Управляемость, Сообщество и испытано и протестировано (запущено в производство).
Кто сможет выполнить все или большинство из этих функций и требований?
РЕДАКТИРОВАТЬ - Что я сделал
- Redis-поддерживаемый менеджер сессий для tomact.
- Redis для кеширования
- Jesque (Java-версия Respue) при поддержке Redis.
- Postgres
- SLF4J при поддержке Log4j2