Download - 07 øyvind asbjørnsen - zoo keeper
Apache ZooKeeperØyvind M. Asbjørnsen
21.11.13
Agenda
• Kva er ZooKeeper• Kva kan ein bruke det til• Korleis fungerar det• Erfaring frå prosjekt• Oppsummering
Kva er ZooKeeper?Server
Server Server
Kva kan ein bruke det til?Leader election
Distribuert låsing
Kø
To-fase commit
Tenesteregister
Konfigurasjonsrepository
Datastruktur og mekanismer
Hierarkisk struktur av noder./min-app/noder/node-00001
min-appstatusernoder
node-00001
node-00002
Datastruktur og mekanismer
Hierarkisk struktur av noder./min-app/noder/node-00001
min-appstatusernoder
node-00001
node-00002
Nodetyper:Ephemeral nodePersisten node
Tilleggsegenskap:Sequential node
Datastruktur og mekanismer
Hierarkisk struktur av noder./min-app/noder/node-00001
min-appstatusernoder
node-00001
node-00002
Watch
Nodetyper:Ephemeral nodePersisten node
Tilleggsegenskap:Sequential node
Quora
Over halvparten av nodene må være tilstede
EnsambleEnsamble
Ensamble a.k.a. Cluster
Oppstart av ZK-ensamble
Oppstart av ZK-ensamblet
Velge master
Tilkobling av klientar
Klient 1 Klient 2 Klient 3
TCP tilkobling
Les-operasjonar
Klient 1 Klient 2 Klient 3
Skriv-operasjonar
Klient 1 Klient 2 Klient 3
Skriv
Skriv-operasjonar
Klient 1 Klient 2 Klient 3
Via masterSkriv
Skriv-operasjonar
Klient 1 Klient 2 Klient 3
Via masterSkriv
Distribuer
Erfaring frå prosjekt• Behov:
– Hente data frå ekstern kilde sekvensielt– Prosessere det som kjem inn so raskt som mogleg– Må ha failover
Erfaring frå prosjekt• Behov:
– Hente data frå ekstern kilde sekvensielt– Prosessere det som kjem inn so raskt som mogleg– Må ha failover
• Implementasjon– Failover: Ein instans kan både hente og prosessere data– Ytelse: Mange deploya applikasjonar kan prosessere data samtidig.
Competing consumers.– Problem: To deploya applikasjonar kan ikkje hente data samtidig
Erfaring frå prosjekt Leader election
/leaderelection/ <ephemeral-sequential-node>
Erfaring frå prosjektLeader election
<feed />
Jobbtabell
Erfaring frå prosjekt Leader election | Meldingsutveksling
<feed />
Jobbtabell
”Status: nyeData”
Competing consumers
Erfaring frå prosjekt Leader election | Meldingsutveksling |Node management
<feed />
”pause””start””avslutt”
Oppsummering
• Tenk på datamodellen som eit filsystem• Klientane får beskjed når znoden endrar seg• Garanterar rekkefølge på skriv• Replikert og distribuert• Bruk Netflix Curator