Tenemos una aplicación web JAVA que usa postgres (base de datos única con un esclavo) para almacenar todos los datos importantes.Redis, Mongo o Hazelcast?
Ahora estamos pasando de una configuración de servidor único a varios servidores, por lo que debo realizar algunos cambios para cumplir con los nuevos requisitos.
1) Identificadores de sesión no adhesivos para el equilibrio de carga y la tolerancia de partición.
2) Caché de datos de lectura frecuente accesibles desde todos los servidores web (en la alternativa Memoria/Memcache).
3) Colas (Correo electrónico, SMS, Tareas para ejecutar sobre el clúster). Por lo general, todos deben ejecutarse en una API xml o raspado de pantalla.
Evitar el procesamiento duplicado de tareas es importante, pero a veces puede suceder :-)
4) Almacenamiento persistente de solicitudes y respuestas API (muchos XML, muchas filas pero pocas columnas). (probablemente archivando eliminando solicitudes y respuestas antiguas para mantener el conjunto de datos pequeño).
5) Inicio de sesión en un lugar común. La mesa seguirá creciendo. También necesitaría una herramienta para acceder a los registros de producción sin detenerlos. Algún tipo de búsqueda debería ser posible en función del tiempo o la cadena de búsqueda.
Quiero una solución única para abordar todos estos requisitos y considerar redis, mongo y hazelcast (en orden de preferencia personal) como posibles alternativas.
Otras consideraciones importantes: 1) Menos intrusión en nuestro código. 2) Estrategias fáciles de copia de seguridad/replicación. Al menos Maestro Esclavo. 3) Manejabilidad, comunidad y probado (en producción).
¿Cuál podrá realizar todas o la mayoría de estas características y requisitos?
EDITAR - lo que hice
- Redis gestor de sesiones respaldado por tomact.
- Redis para almacenar en caché
- Jesque (versión java de Respue) respaldada por redis.
- Postgres
- SLF4J respaldados por Log4j2
Por el momento no estoy interesado en una base de datos distribuida. Mongo parece más un futuro rival de postgres cuando necesitamos escalar. – gladiator