+ All Categories
Home > Technology > Zookeeper presentation

Zookeeper presentation

Date post: 25-Jun-2015
Category:
Upload: mairbek-khadikov
View: 2,320 times
Download: 0 times
Share this document with a friend
Description:
Presentation from Dev Time
Popular Tags:
40
Координация в распределенных системах с помощью Apache Zookeeper Маирбек Хадиков
Transcript
Page 1: Zookeeper presentation

Координация в распределенных системах с помощью Apache

Zookeeper

Маирбек Хадиков

Page 2: Zookeeper presentation

Координация

В распределенных системах не обойтись без

координации

Page 3: Zookeeper presentation

Координация

Система координации должна быть

отказоустойчивой

Page 4: Zookeeper presentation

Координация

Реализовать

синхронизацию в распределенных системах

сложно

Page 5: Zookeeper presentation

Zookeeper

Маштабируемый

Open Source

Fault Tolerant

Распределенный

Page 6: Zookeeper presentation

Задачи

Synchronization ConfigurationMaintenance

Groups Naming

Page 7: Zookeeper presentation

Структура

Page 8: Zookeeper presentation

ZNodeFile

DirectoryWatches

Atomic Operations

OptimisticLocking

Page 9: Zookeeper presentation

Флаги

Sequential

Ephemeral

Page 10: Zookeeper presentation

Sequentialsome-znode-00000001

some-znode-00000002

some-znode-00000003

...

Page 11: Zookeeper presentation

Ephemeral

Время жизни ограниченно временем сессии

Page 12: Zookeeper presentation

ГарантииSequential Consistency

AtomicitySingle System Image

Timelines Reliability

Page 13: Zookeeper presentation

API

create get data

delete

set data

get children

sync

Page 14: Zookeeper presentation

Cluster mode

Page 15: Zookeeper presentation

Cluster mode

Данные сохраняются в памяти на всех серверах

Page 16: Zookeeper presentation

Cluster mode

Лидер выбирается при старте

Page 17: Zookeeper presentation

Cluster mode

Клиенты подключенны к follower'ам

Page 18: Zookeeper presentation

Cluster mode

Все изменения проходят через лидера

Page 19: Zookeeper presentation

Cluster modeCommit после обновления данных на большинстве

серверов

Page 20: Zookeeper presentation

Group Membership

Page 21: Zookeeper presentation

Group MembershipГруппе соответствует определенный

znode

/

...

group

Page 22: Zookeeper presentation

Group MembershipЧлены группы создают ephemeral

znode внутри группы/

...

member

group

Page 23: Zookeeper presentation

Group MembershipЕсли клиент недоступен znode

автоматически удалится/

...

member

group

Page 24: Zookeeper presentation

Barier

Page 25: Zookeeper presentation

BarierКлиент вызывает exists+watcher

/

...

barier

Page 26: Zookeeper presentation

BarierЕсли znode отсутствует барьер

отпущен

/

...

barier

Page 27: Zookeeper presentation

BarierЕсли znode существует, то ожидаем

оповещение о его удалении

/

...

barier

Page 28: Zookeeper presentation

Leader Election

Page 29: Zookeeper presentation

Leader Election

/

...

election

Page 30: Zookeeper presentation

Leader ElectionКаждый желающий создает ephemeral|sequential znode

election

node_00000001

node_00000002

node_00000003

Page 31: Zookeeper presentation

Leader ElectionКлиент у которого znode с наименьшим

номером -- leader

election

node_00000001

node_00000002

node_00000003

Page 32: Zookeeper presentation

Leader ElectionОстальные клиенты ставят watch и следят за

leader

election

node_00000001

node_00000002

node_00000003

Page 33: Zookeeper presentation

Leader ElectionЕсли leader недоступен -- следующий

доступный клиент избирается лидером

election

node_00000001

node_00000004

node_00000007

Page 34: Zookeeper presentation

Lock

Page 35: Zookeeper presentation

LockДля общего ресурса создается znode

/

...

resource

Page 36: Zookeeper presentation

LockКаждый процесс создает

ephemeral|sequential znode

resource

lock_00000001

lock_00000003

lock_00000002

Page 37: Zookeeper presentation

LockПроцесс с наименьшим znode удерживает

lock

lock_00000001

lock_00000003

lock_00000002

resource

Page 38: Zookeeper presentation

LockОстальные процессы ждут удаления

предыдущей znode

lock_00000001

lock_00000003

lock_00000002

resource

Page 39: Zookeeper presentation

LockДля освобождения lock процессом удаляется

znode

lock_00000001

lock_00000003

lock_00000002

resource

Page 40: Zookeeper presentation

Спасибо

@mairbek

[email protected]

github.com/mairbek


Recommended