Redis, Mongo или Hazelcast?

У нас есть веб-приложение JAVA, которое использует postgres (единая база данных с подчиненным устройством) для хранения всех важных данных.

Сейчас мы переходим от настройки одного сервера к множеству серверов, из-за чего мне нужно внести некоторые изменения для соответствия новым требованиям.

1) Незакрепляющиеся идентификаторы сеансов для балансировки нагрузки и устойчивости к разделам.

2) Кэш часто читаемых данных, доступный со всех веб-серверов (альтернатива In Memory / Memcache).

3) Очереди (электронная почта, SMS, задачи для выполнения в кластере). Обычно все они должны выполняться через xml api или очистку экрана.
Важно избегать дублирования обработки задач, но иногда это может случиться: -)

4) Постоянное хранение запросов и ответов API (много XML, много строк, но небольшое количество столбцов).(возможно, заархивируйте, удалив старые запросы и ответы, чтобы сохранить небольшой набор данных).

5) Вход в общее место. Стол будет расти. Также мне понадобится инструмент для доступа к журналам производства, не останавливая их. Должен быть возможен какой-то поиск по времени и / или строке поиска.

Мне нужно единое решение для удовлетворения всех этих требований и рассмотрение redis, mongo и hazelcast (в порядке моих личных предпочтений) как возможных альтернатив.

Другие важные соображения: 1) Меньше вторжения в наш код. 2) Простые стратегии резервного копирования / репликации. По крайней мере, Master Slave. 3) Управляемость, Сообщество и испытанные и протестированные (работает в производстве).

Что сможет выполнить все или большинство из этих функций и требований?

РЕДАКТИРОВАТЬ - Что я сделал

  1. Поддерживаемый Redis диспетчер сеансов для tomact.
  2. Redis для кеширования
  3. Jesque (Java-версия Respue) при поддержке redis.
  4. Postgres
  5. SLF4J при поддержке Log4j2
10
задан gladiator 29 April 2015 в 07:31
поделиться