Vorwort In den Anfangsphasen einiger Projekte werden Entwicklung und Bereitstellung aus Gründen der Einfachheit und Geschwindigkeit auf einer einzigen Maschine durchgeführt. Mit zunehmender Geschäftsausweitung oder steigenden Anforderungen an die Verfügbarkeit genügt die Umgebung mit einer einzigen Maschine jedoch nicht mehr den Anforderungen. Beim Wechsel von einer Bereitstellung auf einem einzelnen Computer zu einer Bereitstellung auf mehreren Computern kann die Sitzungsfreigabe ein wichtiger Schritt sein (der ignoriert werden kann, wenn von Anfang an eine tokenbasierte Authentifizierung verwendet wird). Dieser Artikel stellt ein auf Redis basierendes Open-Source-Projekt zur Tomcat-Sitzungsverwaltung vor: Redission-Tomcat, mit dem die Sitzungsfreigabe schnell und ohne Codeeingriff implementiert werden kann. Einführung Redisson ist ein Redis-Client ähnlich wie Jedis, aber mit umfangreicheren Funktionen als Jedis. redission-tomcat ist ein auf Redis basierendes Tomcat-Sitzungsmanagerprojekt, Projektadresse. Im Vergleich zu anderen Implementierungen ist der Speicher dieses Projekts effizienter und Schreibvorgänge sind optimierter. Jeder Sitzungsparameter wird beim Aufruf von HttpSession.setAttribute in Redis geschrieben, während andere Lösungen im Allgemeinen die gesamte Sitzung serialisieren und jedes Mal schreiben. verwenden 1. Laden Sie die beiden JAR-Pakete redisson-all-3.11.0.jar und redisson-tomcat-8-3.11.0.jar herunter (für Tomcat8, andere Versionen finden Sie auf der obigen Projektadressenseite) und legen Sie sie im Lib-Verzeichnis von Tomcat ab. 2. Fügen Sie der Datei context.xml im Tomcat-Conf-Verzeichnis die folgende Konfiguration hinzu <Manager-Klassenname="org.redisson.tomcat.RedissonSessionManager" configPath="${catalina.base}/conf/redisson.conf" readMode="Speicher" updateMode="Nach_Anforderung" broadcastSessionEvents="false"/> In
3. Fügen Sie im Tomcat-Conf-Verzeichnis eine neue Konfigurationsdatei redisson.conf hinzu. Der Inhalt lautet wie folgt { "singleServerConfig":{ "idleConnectionTimeout":10000, "Verbindungstimeout":10000, "Zeitüberschreitung": 3000, "Wiederholungsversuche":3, "Wiederholungsintervall": 1500, "Passwort":"123456", "Abonnements pro Verbindung": 5, "Clientname":null, "Adresse": "redis://127.0.0.1:6379", "minimale Leerlaufgröße der Abonnementverbindung": 1, "Abonnement-Verbindungspoolgröße": 50, "VerbindungsminimumLeerlaufgröße":24, "Verbindungspoolgröße": 64, "Datenbank": 0, "dnsMonitoringInterval":5000 }, "Gewinde": 16, "nettyThreads":32, "Codec": { "Klasse": "org.redisson.codec.FstCodec" }, "Transportmodus": "NIO" } Oben sehen Sie die Redis-Umgebungskonfiguration für den Standalone-Modus, in der Kennwort und Adresse auf Ihre eigenen Werte geändert werden. Im Cluster-Modus lautet die Konfigurationsdatei { "sentinelServersConfig": { "idleConnectionTimeout":10000, "Verbindungstimeout":10000, "Zeitüberschreitung": 3000, "Wiederholungsversuche":3, "Wiederholungsintervall": 1500, "failedSlaveReconnectionInterval":3000, "failedSlaveCheckInterval":60000, "Passwort":null, "Abonnements pro Verbindung": 5, "Clientname":null, "loadBalancer": { "Klasse": "org.redisson.connection.balancer.RoundRobinLoadBalancer" }, "minimale Leerlaufgröße der Abonnementverbindung": 1, "Abonnement-Verbindungspoolgröße": 50, "SlaveConnectionMinimumIdleSize": 24, "SlaveConnectionPoolSize": 64, "masterConnectionMinimumIdleSize":24, "MasterConnectionPoolSize": 64, "Lesemodus": "SLAVE", "Abonnementmodus": "SLAVE", "sentinelAdressen":[ "redis://127.0.0.1:26379", "redis://127.0.0.1:26389" ], "masterName":"meinmaster", "Datenbank":0 }, "Gewinde": 16, "nettyThreads":32, "Codec": { "Klasse": "org.redisson.codec.FstCodec" }, "Transportmodus": "NIO" } Wir können nginx verwenden, um den Lastenausgleich zu erreichen, siehe die Konfiguration Upstream-cnserver { Server 127.0.0.1:8080 Gewicht=2 Fehler-Timeout=10 s, max. Fehler=1; Server 127.0.0.1:8081 Gewicht=2 Fehler-Timeout=10 s, max. Fehler=1; } Server { hören Sie 80; Servername localhost; Index Index.html Index.htm; Standort /rest/ { Index Index.html; Proxy-Passwort http://cnserver/rest/; } } Oben sind alle Konfigurationen für die Verwendung von Redisson-Tomcat aufgeführt, um die Bereitstellung von Einzel- bis Mehrfachmaschinen zu implementieren. Zusammenfassen Die technische Architektur entwickelt sich zusammen mit der Geschäftsentwicklung weiter. In den frühen Phasen der Geschäftsentwicklung sind die Anzahl der Benutzer und die Geschäftskomplexität relativ gering. Um eine schnelle Online-Verifizierung zu erreichen, wird häufig eine einfache und einheitliche Architektur verwendet. Viele Projekte scheitern möglicherweise, bevor sie Zeit haben, sich weiterzuentwickeln und ihre Architektur zu verbessern. Projekte, die jedoch das Glück haben, weiter zu wachsen, werden im Zuge der Expansion ihres Geschäfts zwangsläufig kontinuierlich optimiert und verbessert. Der in diesem Artikel vorgestellte Redisson-Tomcat kann Einzelmaschinenprojekten dabei helfen, schnell auf Mehrmaschinenunterstützung umzustellen, natürlich nur über die Verknüpfung zur Sitzungsverwaltung. Kommen weitere verteilte Unterstützungen wie Dateiupload, zeitgesteuerte Aufgaben etc. zum Einsatz, müssen entsprechende Anpassungen vorgenommen werden. Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung des JS-Browser-Ereignismodells
>>: Analyse des MySQL-Sperrmechanismus und der Verwendung
1. Der Unterschied zwischen HTTP und HTTPS HTTP: ...
Viele Webseiten haben kleine Dreiecke in ihren Na...
Inhaltsverzeichnis V-Modell .sync Der Unterschied...
Heute Wählen Sie * aus Tabellenname, wobei to_day...
Inhaltsverzeichnis 1. IDEA lädt das Docker-Plugin...
In diesem Artikel wird ein allgemeines Beispiel f...
Hintergrund: Es gibt ein Flask-Projekt, das eine ...
Poste zuerst das Effektbild: Damit der Gesamtstil ...
In diesem Artikel wird hauptsächlich die Bereitst...
In diesem Artikel wird hauptsächlich die Verwendun...
Im Folgenden habe ich einige grundlegende SQL-Ken...
Der Meta-Tag ist ein Hilfstag im Head-Bereich der...
Heute habe ich gesehen, wie ein Freund im Q&A...
In diesem Artikel wird der Verbindungsfehler ECON...
Textkürzung mit CSS Beachten Sie den folgenden Co...