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