2017-03-01 4 views
1

Ich habe ein Problem bei der Sitzungsreplikation. Ich verwende Tomcat-Instanz in AWS und RDS MYSql. Wir haben einen Plan, die Cookie-Sitzung im RDS zu speichern, anstatt die Tomcat-Instanzen zu gruppieren. Ich habe zwei Tomcat-Instanzen in zwei verschiedenen Zonen und die Tomcat-Instanz hat einen Andock-Container, der Anwendungscontainer ist (jeweils 1 Container). Wenn sich der Benutzer am Container anmeldete, konnte ich sehen, dass die Sitzung in der Datenbank gespeichert ist, aber ich mache einen der Andock-Container herunter, der Benutzer sollte mit den in RDS MySQL verfügbaren Cookies angemeldet sein. Wenn ich jedoch einen Andock-Container abbreche (wo der Benutzer angemeldet ist), sollte die zweite Tomcat-Instanz die Cookies von MySQL verwenden und der Benutzer sollte ohne Probleme angemeldet sein. Der Benutzer wird jedoch ständig ausgeloggt, wenn ich den Andock-Container stoppe.Sitzungsreplikation mit AWS Tomcat und RDS

Antwort

1

Das bedeutet, dass Ihr ELB verfolgt, an welche Instanzen es die Benutzer zuvor umgeleitet hat, und leitet die Anforderung erneut an dieselbe Instanz um. Sie müssen sticky-Sitzungen auf dem ELB deaktivieren und stattdessen Sticky Session für Ihre Anwendungen verwenden, damit die Tomcat-Anwendung entscheidet, welche Sitzung verwendet werden soll und nicht die ELB selbst. Bitte lesen Sie die AWS ELB Dokumentation für die Schritt für Schritt Anleitung.

+0

Es leitet mich an die zweite Instanz, wenn der erste Instanz/Docker-Container inaktiv ist. Aber ich muss den Browser schließen und wieder öffnen, und dann zeigt es mir die Anmeldeseite der Anwendung. Letztendlich muss die zweite Instanz die in der DB vorhandenen Cookies verwenden, um die Sitzung am Laufen zu halten. –