Apache ZooKeeper es un tipo de almacenamiento de datos de alta disponibilidad para objetos pequeños. Un clúster ZooKeeper se compone de algunos nodos que conservan todo el conjunto de datos en su memoria. El conjunto de datos se llama "siempre coherente", por lo que cada nodo tiene los mismos datos en todo momento.Apache ZooKeeper: cómo funcionan las escrituras
De acuerdo con la documentación y blog posts, todos los nodos del clúster pueden responder lecturas y aceptar escrituras.
- Las lecturas siempre son respondidas localmente por el nodo, por lo que no se requiere comunicación con el clúster.
- Las escrituras se envían a un nodo designado "Líder", que reenvía la solicitud de escritura a todos los nodos y espera sus respuestas. Si al menos la mitad de los nodos responde, la escritura se considera exitosa.
Pregunta: ¿Por qué es suficiente que el líder espere la respuesta de la mitad de los nodos? Si alguien se conecta a uno de los nodos que no recibió la actualización, obtiene un resultado desactualizado (solo lectura local a valor local).