EMZETT.
Войти

etcd и ZooKeeper

Коротко: etcd и ZooKeeper — небольшие, строго согласованные хранилища данных, с помощью которых распределённые программы координируют конфигурацию, блокировки и выбор лидера.

Подробнее: Они хранят немного, но важных данных на нескольких узлах и договариваются о них по протоколу консенсуса. etcd использует Raft, ZooKeeper — протокол ZAB.

Подробности

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

См. также: Kubernetes