etcd і ZooKeeper
Коротко: etcd і ZooKeeper — невеликі, суворо узгоджені сховища даних, за допомогою яких розподілені програми координують конфігурацію, блокування та вибір лідера.
Докладніше: Вони зберігають небагато, але важливих даних на кількох вузлах і домовляються про них за протоколом консенсусу. etcd використовує Raft, ZooKeeper — протокол ZAB.
Подробиці
- Модель даних: etcd: пласке сховище «ключ — значення». ZooKeeper: дерево «znode», як файлова система.
- Watch: Клієнтів сповіщають про зміни замість постійних опитувань.
- Lease/ефемерні вузли: Запис зникає, коли виходить з ладу його власник. На цьому ґрунтуються реєстрація служб і вибір лідера.
- Кворум: Потрібна більшість вузлів (3 або 5). Якщо вона втрачається, запис припиняється.
- Застосування: etcd — сховище стану Kubernetes. ZooKeeper довго координував Kafka та Hadoop.
- Не призначені для: великих обсягів даних або високого навантаження на запис.
Див. також: Kubernetes