etcd und ZooKeeper
Kurz: etcd und ZooKeeper sind kleine, stark konsistente Datenspeicher, mit denen verteilte Programme Konfiguration, Sperren und die Wahl eines Anführers koordinieren.
Genauer: Sie speichern wenige, wichtige Daten auf mehreren Knoten und einigen sich per Konsensverfahren darauf. etcd nutzt Raft, ZooKeeper das Protokoll ZAB.
Im Detail
- Datenmodell: etcd: flacher Schlüssel-Wert-Speicher. ZooKeeper: Baum aus „Znodes” wie ein Dateisystem.
- Watches: Clients lassen sich über Änderungen benachrichtigen, statt ständig nachzufragen.
- Leases/ephemere Knoten: Ein Eintrag verschwindet, wenn der Besitzer ausfällt. Darauf bauen Dienstregistrierung und Anführerwahl.
- Quorum: Es braucht die Mehrheit der Knoten (3 oder 5). Fällt sie weg, wird nicht mehr geschrieben.
- Einsatz: etcd ist der Zustandsspeicher von Kubernetes. ZooKeeper koordinierte lange Kafka und Hadoop.
- Nicht gedacht für: große Datenmengen oder hohe Schreiblast.
Siehe auch: Kubernetes