1 - Grundlagen der Replikation & Raft [ID:34065]
50 von 313 angezeigt

Hallo zusammen, dieses Video dreht sich um Replikation im Allgemeinen und das Rought-Protocol.

Bevor wir aber zu den beiden Themen kommen, werfen wir erst noch einen kurzen Blick darauf,

was in dieser Übungsaufgabe überhaupt gemacht werden soll.

Wenn ihr euch an die dritte Übungsaufgabe zurückerinnert, hatten wir uns dort damit

beschäftigt Netzwerkprobleme zwischen Sender und Empfänger zu törieren.

Allerdings helfen die Maßnahmen nichts gegen Server-Ausfälle.

Daher wollen wir uns in dieser Übungsaufgabe mit Replikation beschäftigen, damit ein Dienst

dann trotz Server-Ausfällen immer noch funktioniert.

Ganz konkret wollen wir einen Zählerdienst mit Hilfe des Protokolls Raft replizieren.

Der Zählerdienst selbst ist bereits von uns vorgegeben und bietet einen Zähler an, den

ein Kleint incrementieren und auslesen kann.

Die Server-Seite des Zählerdienstes soll dann mit Hilfe von Raft repliziert werden.

Und letztes ist im Rahmen der Übungsaufgabe zu implementieren.

Zum Einstieg werfen wir jetzt erstmal einen etwas generelleren Blick auf Replikation

an sich.

Im Prinzip gibt's grob zwei Spielarten.

Zum einen die aktive Replikation und zum anderen die passive Replikation.

Bei der aktiven Replikation bearbeiten alle Replikate aktiv alle Anfragen, daher auch

der Name, was dann auch dafür sorgt, dass im Fall von Ausfällen jedes Replikat praktisch

sofort einspringen könnte.

Das hat allerdings den Nachteil, dass dadurch, dass jedes Replikat alles ausführen muss,

es dann auch zu einem erhöhten Ressourcenverbrauch kommt.

Bei der passiven Replikation hingegen sieht es dann so aus, dass nur ein einziges Replikat

Anfragen bearbeitet und die sich daraus ergebenden Änderungen oder Sicherungspunkte an die anderen

Replikate verteilt.

Wichtig dabei ist, dass die Antwort auf eine Anfrage erst dann gesendet werden darf, nachdem

die Änderungen gespeichert bzw. an die anderen Replikate verteilt wurden.

Bei passiver Replikation lässt sich außerdem zwischen warm passive replication und cold

passive replication unterscheiden.

Der Hauptunterschied liegt darin, wann oder wie häufig Sicherungspunkte eingespielt werden.

Also ob die Replikate in regelmäßigen Intervallentesicherungspunkte einspielen oder ob die Sicherungspunkte

nur ausfallssicher hinterlegt werden und erst bei Bedarf eingespielt werden.

Die Vorgehensweise sorgt dafür, dass sich der Aufwand im fehlerfreien Fall reduziert,

wenn man höchstens hin und wieder einen Sicherungspunkt anwenden muss.

Im Umkehrschluss sorgt es dann aber auch dafür, dass falls ein Fehler auftritt, man ein Replikat

erst auf den aktuellen Zustand bringen muss, bevor das Replikat dann tatsächlich Anfragen

verarbeiten kann.

Allgemein ist das Ziel beim Replizieren eines Dienstes, die die Replikation so transparent

wie möglich zu gestalten.

Idealerweise merkt der Nutzer nur wenig bis nichts davon, dass der Dienst repliziert

ist.

Das ist abgesehen vielleicht davon, dass es im Fehlerfall ein paar Verzögerungen gibt.

Replikatausfälle sollen folglich vor dem Nutzer verborgen werden, indem dann automatisch

zu anderen funktionierenden Replikaten gewechselt wird.

Beim Replizieren von Diensten muss man zwischen zustandslosen und zustandsbehafteten Diensten

unterscheiden.

Das Replizieren eines zustandslosen Dienstes ist dabei relativ simpel.

Ganz ohne Zustand bzw. nur mit einem unveränderlichen Zustand braucht man logischerweise keine Koordination

zwischen den Replikaten.

Dementsprechend kann sich ein Klein dann einfach eines der Replikate auswählen, also z.B.

Teil einer Videoserie :
Teil eines Kapitels:
Replikation

Presenters

Michael Eischer Michael Eischer

Zugänglich über

Offener Zugang

Dauer

00:20:37 Min

Aufnahmedatum

2021-06-09

Hochgeladen am

2021-06-09 17:17:08

Sprache

de-DE

Überblick zu Replikation im Allgemeinen und ausgewählte Aspekte von Raft

Einbetten
Wordpress FAU Plugin
iFrame
Teilen