Redission-Tomcat implementiert schnell die Bereitstellung von einer einzelnen Maschine zur Bereitstellung auf mehreren Maschinen

Redission-Tomcat implementiert schnell die Bereitstellung von einer einzelnen Maschine zur Bereitstellung auf mehreren Maschinen

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

  • configPath: verweist auf die Redisson-Konfigurationsdatei im JSON- oder YAML-Format, die in Schritt 3 angegeben wurde.
  • readMode: Der Lesemodus des Sitzungsattributs. Die möglichen Werte sind 1. MEMORY, das Sitzungsattribute sowohl in der lokalen Tomcat-Sitzung als auch in Redis speichert. Nachfolgende Sitzungsaktualisierungen werden über Redis-Ereignisse an die lokale Tomcat-Sitzung weitergegeben. 2. REDIS, das Sitzungsattribute nur in Redis speichert. Der Standardwert ist REDIS.
  • updateMode: Der Aktualisierungsmodus des Sitzungsattributs. Mögliche Werte sind: 1. DEFAULT, Sitzungsattribute werden nur über die Methode setAttribute in Redis gespeichert; 2. AFTER_REQUEST, nach jeder Anforderung werden alle Sitzungsattribute in Redis gespeichert. Der Standardwert ist DEFAULT.
  • broadcastSessionEvents: Wenn auf „true“ gesetzt, werden die Ereignisse „sessionCreated“ und „sessionDestroyed“ an alle Tomcat-Instanzen gesendet und alle registrierten HttpSessionListeners werden ausgelöst. Der Standardwert ist „false“.

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:
  • So implementieren Sie verteilte Sperren basierend auf Redis in Java-Annotationen
  • Redistributionsverteilte Sperre verhindert wiederholte Initialisierungsprobleme

<<:  Detaillierte Erklärung des JS-Browser-Ereignismodells

>>:  Analyse des MySQL-Sperrmechanismus und der Verwendung

Artikel empfehlen

So verwenden Sie CSS-Overflow: Hidden (Überlauf ausblenden und Floats löschen)

Überlauf ausblenden Damit ist gemeint, dass Text-...

So erstellen Sie einen DHCP-Server in Linux

Inhaltsverzeichnis 1. Grundkenntnisse: 2. DHCP-Se...

Beispielcode zur einfachen Implementierung des Seitenlayouts mit Flex-Layout

Kommen wir ohne weitere Umschweife direkt zum Cod...

Util-Modul im node.js-Tutorial-Beispiel – detaillierte Erklärung

Inhaltsverzeichnis Ausgehend von der Typbeurteilu...

Detailliertes Tutorial zur Installation von ffmpeg unter Linux

1. Installieren Sie ffmpeg unter Centos Linux 1. ...

js realisiert Warenkorb-Add- und Subtraktions- sowie Preisberechnungsfunktionen

In diesem Artikel wird der spezifische Code von j...