Desarrollar un sistema en la nube con escalabilidad significa que el sistema está compuesto en servicios REST a lo largo de límites funcionales (usermgmt, ordermgmt, customermgt etc.) cada uno con su propia base de datos subyacente y dependiendo de la carga, es posible que giremos hasta varias instancias de, por ejemplo, el servicio ordermgmt. Cuando el servicio ordermgmt procesa una solicitud para agregar un pedido (en nombre de un "cliente"), realiza una llamada REST al servicio customermgmt para validar al cliente, etc. ...¿Es Zookeeper apropiado para el almacenamiento en caché de objetos?
Dado que una entidad cliente no cambiaría muy a menudo, me pregunto si algo como ZooKeeper sería apropiado para almacenar en caché una instancia de un cliente en particular que múltiples instancias de un servicio de customermgmt podrían interrogar antes de llegar a la base de datos. He observado las diversas listas de usos de Zookeeper pero no veo a nadie usándolo para caché de objetos. Parece que el tamaño znode de bytes recomendado es de aproximadamente 1 KB, por lo que no es apropiado para almacenar un objeto deshidratado. Además, no hay soporte para GC o LRU de manera inmediata, así que también tendría que agregar esto.
Si no Zookeeper, ¿alguna sugerencia más apropiada? Estamos utilizando Hibernate como ORM, pero no tenemos mucha experiencia con él y si bien admite cachés de primer y segundo nivel, no estoy seguro de si funcionan de manera distribuida/replicada en varias instancias de servicio. .
Gracias a Scott