Tomcat: Speichern der session in Datenbank
Ich bin auf der Suche nach einem Weg, um zu vermeiden, in-memory-session-replication/Cluster und speichern der session in einer Datenbank. Verwendung von Tomcat ist JDBCStore ist sinnlos an dieser Stelle, denn es speichert nur inaktive sessions in der Datenbank zu speichern Speicher des servers.
Irgendwelche Vorschläge?
Dank im Voraus
Fabian
- Aus Neugier, haben Sie sah von Amazon Elastic Beanstalk? Sie bieten sticky sessions.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie nicht wollen, verwenden Sie die Sitzung, in der Art, wie es verwendet werden soll, dann verwenden Sie es nicht überhaupt - entwickeln Sie Ihre eigenen session-Objekt. Es kann noch implementieren
HttpSession
, und sogar die Verlängerung der aus einer Umsetzung vonHttpSession
.Können Sie eine
Filter
zu wickeln Sie Ihre Anfrage, so dass es gibt Ihre session-Objekt, anstatt der standard. In Ihrer Sitzung, die Sie speichern können, die Dinge in die DB anstelle von in-memory.Anstelle des Schreibens an die DB, die Sie verwenden können, Hazelcast - es stellt die verteilte Sammlungen. Aber ich denke, es wird die gleiche Menge Aufwand zum konfigurieren der session-Replikation. Und session-Replikation ist nicht etwas, das schwer - es wird unterstützt von allen Containern.
Dies sind grobe Richtlinien, wird die Aufgabe nicht trivial sein. Und ich würde empfehlen, das festhalten an der standard-session-Nutzungsgewohnheiten und die Speicherung Dinge in der DB nur, wenn wirklich nötig.
Um zu vermeiden, die Notwendigkeit der Replikation, die Sie könnten versuchen, mithilfe von sticky sessions, d.h. wenn ein Benutzer gerichtet ist, einen server durch den load-balancer, bei jeder nachfolgenden Anforderung, die von diesem Benutzer gesendet wird, auf dem gleichen server.
Vielleicht möchten Sie sich bei dieses Projekt, würde ich lieber die Speicherung von sessions in memcached statt in der DB.
Scheint mir es ist kein Weg, dann ist die Implementierung eines JDBC-Session-Manager auf meinen eigenen, aber danke für deine Antworten und Zeit - Hazelcast braucht etwas näher, scheint sehr mächtig für mich. Ich werde etwas tun, ähnlich wie J. Brisbin: http://jbrisbin.com/web2/articles/tomcat-session-manager-backed-by-riak/