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