2009-03-16 85 views
24

Nunca he usado cachés distribuidos/DHT como memcached, caché jboss, ehcache, etc. Me pregunto cuál, si corresponde, es apropiado para mi uso.java caché distribuida para baja latencia, alta disponibilidad

En primer lugar, no estoy haciendo aplicaciones web (ya que la mayoría de estos proyectos parecen estar orientados a aplicaciones web). Escribo servidores (en realidad, sistemas de gestión de pedidos) para empresas de comercio financiero. Los servidores en sí no son demasiado complicados. Necesitan recibir información (datos de mercado, pedidos, ejecuciones, etc.) para llevarlos a su destino mientras posiblemente transforman algunos de estos mensajes.

Estoy buscando en estos productos para resolver los siguientes problemas:

  • depósito de seguridad del estado del servidor. Prefiero construir la lógica de mi aplicación como un grupo de transformadores (similar a Apache Camel) y almacenar el estado en un lugar 'seguro'

  • Este repositorio debe distribuirse: en caso de que uno de estos almacenes de datos falle. , uno o dos más deberían estar activados y debería poder cambiarlos a la perfección

  • Este repositorio debe ser rápido. Los milisegundos de un solo dígito cuentan aquí, en otras palabras, los sistemas que consumen/procesan estos datos son sistemas automatizados, no humanos haciendo clic en los enlaces. Este sistema necesita tener alto rendimiento y baja latencia. Al enviar mis datos fuera del proceso, estoy necesariamente ralentizando el rendimiento, pero estoy tratando de equilibrar la velocidad bruta absoluta y la protección absoluta de los datos.

  • Este depósito debe ser seguro. Similar al punto acerca de varias copias de seguridad en línea, este sistema necesita escribir datos en el disco (potencialmente más de un disco).

Realmente me gustaría dejar de escribir mis propios 'servidores de transacciones'. ¿Estoy en lo correcto al buscar proyectos como caché jboss, ehcache, etc.?

Gracias

Respuesta

5

Muchas instituciones financieras están utilizando Oracle Coherence para esto.

Sin embargo, no coincidirá con todos los puntos en su lista.

4

creo, JBoss Cache es una lo suficientemente bueno para sus propósitos:

  • rápidas
  • distribuidos
  • transaccional con la implementación MVCC (sin lectura con bloqueo)
  • apoya JTA
  • admite el modo asíncrono
  • datos de desalojo a almacenamiento persistente (jd bc, bdb, etc.)
9

Hazelcast es una solución de caché distribuida, transaccional y de fuente abierta para Java. Adecuado para aplicaciones financieras. Se lanza bajo la licencia de Apache.

Hazelcast es en realidad un poco más que un caché distribuido; se distribuye la implementación de cola, tema, mapa, multimapa, bloqueo, servicio de ejecutor para Java.

4

Aquí tiene algunas buenas soluciones gratuitas. Sin embargo, si necesita una solución más rápida, puede probar 29 West o Solace que tienen soluciones de mensajería confiables/garantizadas de latencia inferior a 100 microsegundos.

+1

Pero necesita un caché – HaveAGuess

+1

@HaveAGuess, sin embargo, es un buen punto, la implementación de un caché distribuido es relativamente simple una vez que tiene conectividad de baja latencia. –

-2

voy a sugerir NCache debido a las siguientes razones,

  • .NET y Java Soporte
  • Amplia gama de topologías
  • No se requiere cambio de código
  • altamente distribuida y escalable
  • Absolutamente gratis (NCache Express)
+1

Voy a seguir adelante y supongo que @Timmy funciona para Alachisoft. – mjaggard

+0

Esta es una .NET solución –

3

Mire Gemfire es de alto rendimiento en la cuadrícula de datos de memoria. Proporciona caché distribuida, querieng de objetos y notificaciones de eventos.

+0

También puede conservar el caché si eso es lo que desea. –

2

Eche un vistazo a Cacheonix Distributed Cache and Data Grid. Satisface sus requisitos de baja latencia y confiabilidad al proporcionar un caché local coherente y al distribuir los datos en caché a varios servidores y al replicar los datos en caché. Divulgación completa: trabajo para Cacheonix.

Cuestiones relacionadas