Zustand prüfen trotz Loadbalancer

danielmaann

Mitglied
Hallo zusammen
In letzter Zeit beschäftige ich mich mit einem Thema und bei dem geht es um den Zustand.
Bei der REST-Technologie wird ja von einer zustandslosen Technologie gesprochen. Trotzdem werden viele Applikationen damit geschrieben und auch "Zustände" werden durchaus da generiert.
Z.B. Bei einem Login wird ein Token generiert das, dann immer an die Schnittstelle gesendet wird. In meinem Fall nehmen wir nun das JWT (Json Web Token).
Das funktioniert ja auch alles einwandfrei. Was mich aber wunder nimmt ist, wenn ich zwei Instanzen der Software hochfahre, davor einen Loadbalancer habe, woher weiss der eine Server welche Tokens beim anderen sind?

Kurz und knapp:
Eine Instanz, Login mit Token und Prüfung = Kein Problem
Bei zwei Instanzen und einem LB kommt man nicht immer auf die gleiche Instanz. Wie gleichen diese zwei sich ab das beide von den selben Tokens wissen?
 

mrBrown

Super-Moderator
Mitarbeiter
JWT hat den Vorteil, dass man Serverseitig nicht zwingend Zustand halten muss.

Als Beispiel: du generierst den Token mit den nötigen Informationen und signierst diesen dann. Nur das zum Signieren genutzte (z.B. Key oder Zertifikat) muss allen Servern bekannt sein, dies ist aber nicht Session-Abhängig.
 

Dukel

Top Contributor
Wenn wirklich ein Zustand gespeichet werden muss dann geht das mit einer dritten Instanz wie einer Datenbank.
D.h. es gibt eine (verfügbar aufgestellte) Datenbank, die die Session Informationen speichert und beide Applikationsserver greifen auf diese Datenbank zu.
 

JuKu

Top Contributor
Was mich aber wunder nimmt ist, wenn ich zwei Instanzen der Software hochfahre, davor einen Loadbalancer habe, woher weiss der eine Server welche Tokens beim anderen sind?

Kurz und knapp:
Entweder werden diese Informationen irgendwo gespeichert (z.B. in einem Distributed Cache oder in einer Datenbank) oder die beiden Server müssen sich unterhalten und untereinander die Daten austauschen.

Bei zwei Instanzen und einem LB kommt man nicht immer auf die gleiche Instanz. Wie gleichen diese zwei sich ab das beide von den selben Tokens wissen?

Also erstens kannst du einen LB immer so konfigurieren, dass der letzte Server bevorzugt wird (z.B. über IP oder bei HTTP über Cookies). Ansonsten siehe oben, Datenbank oder Interconnects.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M den Server aus seinem accept-Zustand holen Netzwerkprogrammierung 3
JavaDevOp Socket Status von UDP-Port prüfen (PortUnreachableException funktioniert nicht?) Netzwerkprogrammierung 32
F TCP Socket auf Verbindungsabbruch prüfen Netzwerkprogrammierung 15
J Prüfen, ob remote UDT Server erreichbar ist Netzwerkprogrammierung 0
Dit_ UDP Pakete prüfen, sortieren Netzwerkprogrammierung 20
J Socket ObjectInputStream prüfen Netzwerkprogrammierung 8
G Verbindungsstatus prüfen Netzwerkprogrammierung 4
J Prüfen ob Befehl ausgeführt wurde moeglich? Netzwerkprogrammierung 15
hdi Webseite auf Download-Links prüfen und Download starten? Netzwerkprogrammierung 7
S Prüfen ob IP aus definiertem Subnetz Netzwerkprogrammierung 4
M [Commons NET] Prüfen, ob auf FTP Datei vorhanden ist Netzwerkprogrammierung 2
J Prüfen, ob IP-Adresse gültig ist Netzwerkprogrammierung 5
K Mit Java-MailAPI dir Verfügbarkeit eines SMTP-Servers prüfen Netzwerkprogrammierung 4
C Verbindung zum Server prüfen mit einem vorhandenem Socket Netzwerkprogrammierung 4
B Internetverbindung prüfen unter Windows Netzwerkprogrammierung 1
B Internetverbinding prüfen Netzwerkprogrammierung 2
P mit javamail gmx postfach prüfen Netzwerkprogrammierung 8
S Peer2Peer Verbindung trotz NAT Netzwerkprogrammierung 2
A trotz dyn-IP server finden Netzwerkprogrammierung 33
W RMI Verschiedene Unterobjekte trotz selbem Remote Object Netzwerkprogrammierung 2
Kr0e Datenaustausch trotz NIO nur halb so schnell Netzwerkprogrammierung 6
C NetScanner arbeitet trotz Threads langsam Netzwerkprogrammierung 6
A Googleanfrage trotz firewall und proxi Netzwerkprogrammierung 3
R "Class not found" trotz gesetztem CLASSPATH Netzwerkprogrammierung 4
R Port trotz aktiver Firewall nutzen ! Netzwerkprogrammierung 9

Ähnliche Java Themen

Neue Themen


Oben