07 øyvind asbjørnsen - zoo keeper

Preview:

Citation preview

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

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