Grundlagen der Webtechnologien
Hinter einem Load Balancer stehen drei Anwendungsserver, auf die die Anfragen der Reihe nach verteilt werden (Round Robin). Die Sitzungsinformationen eines angemeldeten Nutzers werden nur im Arbeitsspeicher des Servers abgelegt, der die Anmeldung bearbeitet hat. Welche Kombination aus wahrscheinlichem Problem und Gegenmaßnahme ist angemessen?
- AWird eine Anfrage an einen anderen Server verteilt, wird die Sitzung nicht gefunden, und der Nutzer scheint abgemeldet zu sein. Die Sitzungen werden an einem gemeinsamen Ort abgelegt, den alle Server nutzen können
- BDie drei Server geben unabhängig voneinander dieselbe Sitzungs-ID aus, und die IDs kollidieren. Sitzungs-IDs werden zu kurzen fortlaufenden Nummern, damit sich Nutzer ihre ID leicht merken können
- CDer Load Balancer kann keine Cookies lesen, sodass HTTPS nicht mehr funktioniert. Die Kommunikation zwischen Load Balancer und Servern wird nicht mehr verschlüsselt
Antwort und Erläuterung anzeigen
Antwort: A. Wird eine Anfrage an einen anderen Server verteilt, wird die Sitzung nicht gefunden, und der Nutzer scheint abgemeldet zu sein. Die Sitzungen werden an einem gemeinsamen Ort abgelegt, den alle Server nutzen können
Liegen die Sitzungsinformationen nur im Arbeitsspeicher eines Servers, kann ein anderer Server, an den die nächste Anfrage verteilt wird, den Nutzer nicht erkennen. Eine Gegenmaßnahme ist, die Sitzungen an einem gemeinsamen Speicherort abzulegen, den jeder Server lesen und beschreiben kann (einem In-Memory-Datenspeicher oder einer Datenbank). Eine andere ist die Sitzungspersistenz (Sticky Sessions), bei der die Anfragen desselben Nutzers immer an denselben Server verteilt werden; fällt dieser Server jedoch aus, gehen die Sitzungen verloren, und die Last verteilt sich leicht ungleichmäßig. Halten die Server keinen Zustand, lassen sich leicht Server hinzufügen oder entfernen.