23
Apache ZooKeeper Øyvind M. Asbjørnsen 21.11.13

07 øyvind asbjørnsen - zoo keeper

Embed Size (px)

Citation preview

Page 1: 07   øyvind asbjørnsen - zoo keeper

Apache ZooKeeperØyvind M. Asbjørnsen

21.11.13

Page 2: 07   øyvind asbjørnsen - zoo keeper

Agenda

• Kva er ZooKeeper• Kva kan ein bruke det til• Korleis fungerar det• Erfaring frå prosjekt• Oppsummering

Page 3: 07   øyvind asbjørnsen - zoo keeper

Kva er ZooKeeper?Server

Server Server

Page 4: 07   øyvind asbjørnsen - zoo keeper

Kva kan ein bruke det til?Leader election

Distribuert låsing

To-fase commit

Tenesteregister

Konfigurasjonsrepository

Page 5: 07   øyvind asbjørnsen - zoo keeper

Datastruktur og mekanismer

Hierarkisk struktur av noder./min-app/noder/node-00001

min-appstatusernoder

node-00001

node-00002

Page 6: 07   øyvind asbjørnsen - zoo keeper

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

Page 7: 07   øyvind asbjørnsen - zoo keeper

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

Page 8: 07   øyvind asbjørnsen - zoo keeper

Quora

Over halvparten av nodene må være tilstede

Page 9: 07   øyvind asbjørnsen - zoo keeper

EnsambleEnsamble

Ensamble a.k.a. Cluster

Page 10: 07   øyvind asbjørnsen - zoo keeper

Oppstart av ZK-ensamble

Page 11: 07   øyvind asbjørnsen - zoo keeper

Oppstart av ZK-ensamblet

Velge master

Page 12: 07   øyvind asbjørnsen - zoo keeper

Tilkobling av klientar

Klient 1 Klient 2 Klient 3

TCP tilkobling

Page 13: 07   øyvind asbjørnsen - zoo keeper

Les-operasjonar

Klient 1 Klient 2 Klient 3

Page 14: 07   øyvind asbjørnsen - zoo keeper

Skriv-operasjonar

Klient 1 Klient 2 Klient 3

Skriv

Page 15: 07   øyvind asbjørnsen - zoo keeper

Skriv-operasjonar

Klient 1 Klient 2 Klient 3

Via masterSkriv

Page 16: 07   øyvind asbjørnsen - zoo keeper

Skriv-operasjonar

Klient 1 Klient 2 Klient 3

Via masterSkriv

Distribuer

Page 17: 07   øyvind asbjørnsen - zoo keeper

Erfaring frå prosjekt• Behov:

– Hente data frå ekstern kilde sekvensielt– Prosessere det som kjem inn so raskt som mogleg– Må ha failover

Page 18: 07   øyvind asbjørnsen - zoo keeper

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

Page 19: 07   øyvind asbjørnsen - zoo keeper

Erfaring frå prosjekt Leader election

/leaderelection/ <ephemeral-sequential-node>

Page 20: 07   øyvind asbjørnsen - zoo keeper

Erfaring frå prosjektLeader election

<feed />

Jobbtabell

Page 21: 07   øyvind asbjørnsen - zoo keeper

Erfaring frå prosjekt Leader election | Meldingsutveksling

<feed />

Jobbtabell

”Status: nyeData”

Competing consumers

Page 22: 07   øyvind asbjørnsen - zoo keeper

Erfaring frå prosjekt Leader election | Meldingsutveksling |Node management

<feed />

”pause””start””avslutt”

Page 23: 07   øyvind asbjørnsen - zoo keeper

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