Dieses Mal demonstrieren wir hauptsächlich die Funktionsweise unter Win7 64.
Webanwendungserstellung
Einfach Der Aufbau einer Webanwendung wird hier nicht beschrieben. Weitere Informationen finden Sie auf meinem Github.
Um die Anzeige zu erleichtern, machen Sie einen Unterschied in success.jsp und fügen Sie 8080 zu einem und 8081 zu dem anderen hinzu.
Memcached-Installation, Konfiguration, Start
In diesem Beispiel werden 2 Memcached-Knoten verwendet, beide auf einem Computer.
Betrieb unter Win7 64. Die Ressource kann unter diesem Link heruntergeladen werden. Ich bin Link.
Geben Sie nach dem Entpacken cmd ein, um dieses Verzeichnis aufzurufen. Denken Sie daran, es als Administrator auszuführen.
Installieren
<code>memcached <span>-d</span> install</code>
Ausführen
<code>memcached <span>-d</span> start</code>
Sie können auch mehrere zwischengespeicherte Dienste starten. Sie können auf diesen Link verweisen.
Erstellen
<code>sc <span><span>create</span><span>"Memcached Server"</span><span>start</span>= auto binPath= <span>"memcached_path -d runservice -m 32 -p 11311 -l 127.0.0.1"</span> DisplayName= <span>"Memcached Server"</span></span></code>
Bitte ändern Sie den Port, der Standardwert ist 11211
Erreichbar über Telnet: Telnet 127.0.0.1 11211
Das Beenden der Telnet-Schnittstelle kann beendet werden
Befehle zum Starten, Stoppen und Deinstallieren von Memcached Server:
<code>sc start <span>"Memcached Server"</span><span>//启动</span> sc stop <span>"Memcached Server"</span><span>//停止</span> sc <span>delete</span><span>"Memcached Server"</span><span>//卸载该服务</span></code>
Sie können den Memcached-Dienst im Task-Manager sehen
Tomcat-Konfiguration
Dieses Mal verwenden wir 2 Tomcat7.0.62-Beispiele
Die Tomcat-Clusterkonfiguration wird durch die gemeinsame Nutzung der im Cluster gespeicherten Sitzung implementiert Cache Memcached. Sitzungsfreigabe: Wenn der Tomcat-Dienst auf einem Computer gestoppt wird, können die Sitzungsdaten auf anderen Peer-Servern weiterhin aus dem Memcached-Cache gelesen werden, sodass es nicht zu Sitzungsverlusten kommt.
Verwenden Sie Memcached-Session-Manager, offizielle Dokumentation.
Die Konfiguration von Tomcat umfasst hauptsächlich zwei Aspekte: Zuerst müssen Sie die erforderlichen Pakete herunterladen und sie im lib-Verzeichnis unter dem Tomcat-Installationsverzeichnis ablegen (genau genommen sollte es $CATALINA_HOME/lib/ sein)
Das für die erste MSM erforderliche Glas, das für die Serialisierung erforderliche Glas,
Die zweite Konfiguration context.xml
erforderliches JAR-Paket
Maven-Konfiguration entsprechend Tomcat 7
Die folgenden 3 Glaspakete sind erforderlich
memcached-session-manager-version.jar,
memcached-session-manager-tc7-version.jar,
spymemcached-version.jar
kann von Maven unten heruntergeladen werden
<code><span><<span>dependency</span>></span><span><<span>groupId</span>></span>de.javakaffee.msm<span></<span>groupId</span>></span><span><<span>artifactId</span>></span>memcached-session-manager-tc7<span></<span>artifactId</span>></span><span><<span>version</span>></span>1.8.3<span></<span>version</span>></span><span></<span>dependency</span>></span></code>
4 Arten der Serialisierung
<code>kryo-serializer: <span><<span>dependency</span>></span><span><<span>groupId</span>></span>de.javakaffee.msm<span></<span>groupId</span>></span><span><<span>artifactId</span>></span>msm-kryo-serializer<span></<span>artifactId</span>></span><span><<span>version</span>></span>version<span></<span>version</span>></span><span></<span>dependency</span>></span>javolution: <span><<span>dependency</span>></span><span><<span>groupId</span>></span>de.javakaffee.msm<span></<span>groupId</span>></span><span><<span>artifactId</span>></span>msm-javolution-serializer<span></<span>artifactId</span>></span><span><<span>version</span>></span>version<span></<span>version</span>></span><span></<span>dependency</span>></span>xstream: <span><<span>dependency</span>></span><span><<span>groupId</span>></span>de.javakaffee.msm<span></<span>groupId</span>></span><span><<span>artifactId</span>></span>msm-xstream-serializer<span></<span>artifactId</span>></span><span><<span>version</span>></span>version<span></<span>version</span>></span><span></<span>dependency</span>></span>flexjson: <span><<span>dependency</span>></span><span><<span>groupId</span>></span>de.javakaffee.msm<span></<span>groupId</span>></span><span><<span>artifactId</span>></span>msm-flexjson-serializer<span></<span>artifactId</span>></span><span><<span>version</span>></span>version<span></<span>version</span>></span><span></<span>dependency</span>></span></code>
Verschiedene Sequenzen Das Glas Für die Transformation erforderliche Pakete sind wie folgt:
- Kryo-Serializer: msm-Kryo-Serializer, Kryo-Serializer, Kryo, Minlog, Reflectasm, ASM
- javolution-serializer: msm-javolution-serializer, javolution
- xstream-serializer: msm-xstream-serializer, xstream, xmlpull, xpp3_min
- flexjson-serializer: msm-flexjson-serializer, flexjson
$CATALINA_HOME/lib/jar wie folgt hinzufügen
context.xml-Konfiguration
das Ändern Sie den Inhalt unter dem Kontextknoten in der Datei $CATALINA_HOME/conf/context.xml und senden Sie die MSM-Konfiguration.
Es umfasst hauptsächlich die Verwendung von Memcached zum Verwalten von Sticky- und Non-Sticky-Sitzungen sowie die Verwendung von Membase zum Verwalten von Non-Sticky-Sitzungen.
Das Beispiel basiert auf zwei zwischengespeicherten Instanzen auf einem Host. Die im Beispiel verwendete Serialisierungsmethode ist Kryo.
Dieses Mal werden Sticky-Sitzungen für die Verwaltung verwendet. Sie können sie selbst konfigurieren oder beim nächsten Mal hinzufügen. Die Konfiguration ist wie folgt.
<code><Context> <span>...</span><Manager className=<span>"de.javakaffee.web.msm.MemcachedBackupSessionManager"</span> memcachedNodes=<span>"n1:localhost:11211,n2:localhost:11311"</span> sticky=<span>"false"</span> sessi>"false"</span> lockingMode=<span>"auto"</span> requestUriIgnorePattern=<span>".*\.(ico|png|gif|jpg|css|js)$"</span>transcoderFactoryClass=<span>"de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"</span>/> </Context> </code>
Nginx-Installation, Konfiguration, Start
Laden Sie die stabile Version von der offiziellen Website herunter,
Geben Sie nach dem Dekomprimieren das Verzeichnis ein,
<code>start nginx <span>// 启动</span></code>
Auf diese Weise wird der Nginx-Dienst gestartet. Öffnen Sie den Task-Manager und überprüfen Sie, ob der Prozess nginx.exe angezeigt wird und Systemressourcen belegt, was recht gering ist. Öffnen Sie dann den Browser und geben Sie http://127.0.0.1/ ein, um die Nginx-Begrüßungsseite anzuzeigen, die sehr benutzerfreundlich ist.
<code>nginx <span>-s</span> stop <span>// 停止nginx</span> nginx <span>-s</span> reload <span>// 重新加载配置文件</span> nginx <span>-s</span> quit <span>// 退出nginx</span></code>
Standardmäßig verwendet Nginx die Standardkonfigurationsdatei nginx.conf. Ändern Sie sie wie folgt:
<code><span>#user nobody;</span><span>worker_processes</span><span>2</span>; <span>#error_log logs/error.log;</span><span>#error_log logs/error.log notice;</span><span>#error_log logs/error.log info;</span><span>#pid logs/nginx.pid;</span><span>events</span> { <span>worker_connections</span><span>1024</span>; } <span>http</span> { <span>include</span> mime.types; <span>default_type</span> application/octet-stream; <span>log_format</span> main <span>'<span>$remote_addr</span> - <span>$remote_user</span> [<span>$time_local</span>] "<span>$request</span>" '</span><span>'<span>$status</span><span>$body_bytes_sent</span> "<span>$http_referer</span>" '</span><span>'"<span>$http_user_agent</span>" "<span>$http_x_forwarded_for</span>"'</span>; <span>access_log</span> logs/access.log main; <span>sendfile</span><span>on</span>; <span>#tcp_nopush on;</span><span>#keepalive_timeout 0;</span><span>#keepalive_timeout 65;</span><span>#gzip on;</span><span>upstream</span> localhost { <span>#ip_hash;</span><span>server</span> localhost:<span>8080</span> weight=<span>1</span>; <span>server</span> localhost:<span>8081</span> weight=<span>1</span>; } <span>server</span> { <span>listen</span><span>80</span>; <span>server_name</span> localhost; <span>charset</span> utf-<span>8</span>; <span>#charset koi8-r;</span><span>#access_log logs/host.access.log main;</span><span>location</span> / { <span>root</span> html; <span>index</span> index.html index.htm; <span>proxy_pass</span><span>http://localhost</span>; <span>proxy_connect_timeout</span><span>2s</span>; <span>proxy_set_header</span> X-Real-IP <span>$remote_addr</span>; <span>proxy_set_header</span> X-Forwarded-For <span>$proxy_add_x_forwarded_for</span>; } <span>location</span><span>~ ^/(WEB-INF)/</span> { <span>deny</span> all; } <span>#error_page 404 /404.html;</span><span># redirect server error pages to the static page /50x.html</span><span>#</span><span>error_page</span><span>500</span><span>502</span><span>503</span><span>504</span> /50x.html; <span>location</span> = /50x.html { <span>root</span> html; } <span># proxy the PHP scripts to Apache listening on 127.0.0.1:80</span><span>#</span><span>#location ~ \.php$ {</span><span># proxy_pass http://127.0.0.1;</span><span>#}</span><span># pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000</span><span>#</span><span>#location ~ \.php$ {</span><span># root html;</span><span># fastcgi_pass 127.0.0.1:9000;</span><span># fastcgi_index index.php;</span><span># fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;</span><span># include fastcgi_params;</span><span>#}</span><span># deny access to .htaccess files, if Apache's document root</span><span># concurs with nginx's one</span><span>#</span><span>#location ~ /\.ht {</span><span># deny all;</span><span>#}</span> } <span># another virtual host using mix of IP-, name-, and port-based configuration</span><span>#</span><span>#server {</span><span># listen 8000;</span><span># listen somename:8080;</span><span># server_name somename alias another.alias;</span><span># location / {</span><span># root html;</span><span># index index.html index.htm;</span><span># }</span><span>#}</span><span># HTTPS server</span><span>#</span><span>#server {</span><span># listen 443 ssl;</span><span># server_name localhost;</span><span># ssl_certificate cert.pem;</span><span># ssl_certificate_key cert.key;</span><span># ssl_session_cache shared:SSL:1m;</span><span># ssl_session_timeout 5m;</span><span># ssl_ciphers HIGH:!aNULL:!MD5;</span><span># ssl_prefer_server_ciphers on;</span><span># location / {</span><span># root html;</span><span># index index.html index.htm;</span><span># }</span><span>#}</span>} </code>
Test
Anmeldeseite
Erfolgsseite
success1
success2
Nachdem Sie Tomcat (8080) ausgeschaltet haben, rufen Sie Tomcat (8081) auf, um success2 anzuzeigen;
Wenn ein zwischengespeicherter Dienst geschlossen wird, ist die Anzeige normal.
Starten Sie mehrere Memcached-Dienste auf demselben Windows-Computer
Einführung und Verwendung von MSM–Memcached_Session_Manager
Memcached-Session-Manager-Konfiguration
Installation und Konfiguration von Nginx unter Windows
Das Obige stellt die Nginx Memcached Tomcat-Clusterkonfiguration einschließlich der relevanten Aspekte vor. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.