Unter Ubuntu1404 ermöglicht die Tomcat8 Nginx Memcache-Konfiguration Server-Cluster-Sitzungsfreigabe

WBOY
Freigeben: 2016-07-29 09:15:39
Original
994 Leute haben es durchsucht

Der zuvor konfigurierte Tomcat-Cluster verwendet die von Tomcat bereitgestellte einfache Clusterverwaltungsmethode: , dieser Cluster-Sitzungsbeitrag wird verwendet Es ist: org .apache.catalina.ha.session.DeltaManager, der die Sitzung eines bestimmten Knotens auf alle Knoten im Cluster kopiert. Laut der offiziellen Tomcat-Dokumentation funktioniert diese Sitzungsfreigabemethode nicht gut, wenn der Cluster größer wird. Daher habe ich versucht, Memcached zu verwenden, damit der Cluster die Sitzung teilen kann.

Zu den Konfigurationsreferenzdokumenten gehören: Klicken Sie, um den Link zu öffnen. Unter diesem Link finden Sie das JAR-Paket, das zu Ihrem Tomcat passt, sowie die Tomcat-Konfigurationsmethode. Lassen Sie uns unten meinen Konfigurationsprozess aufzeichnen.

1. Konfigurieren Sie den Nginx-Reverse-Proxy gemäß dem Inhalt des vorherigen Blogs

2. Installieren Sie Memcache unter Ubuntu:

Sie können den folgenden Befehl zur Installation verwenden it

sudo apt-get install memcached
Nach dem Login kopieren
3. Bearbeiten Sie die Datei /etc/memcached.conf:

Diese Datei enthält die Konfiguration jedes Parameters. Kommentieren Sie den Parameter -l hier aus, da Memcache standardmäßig alle Adressen überwacht, oder ändern Sie 127.0.0.1 in 0.0.0.0, damit Memcache die Standardadresse überwacht.

Wenn Sie dies nicht tun, können Sie Memcached nur auf diesem Computer verwenden und andere Computer können keine Verbindung herstellen, sodass dies bedeutungslos ist.

Nach der Konfiguration können Sie mit dem folgenden Befehl überprüfen, ob Memcache verbunden werden kann. Dabei ist IP die auf dem Memcache-Host installierte IP-Adresse und 11211 der Überwachungsport von Memcache.

telnet ip 11211
Nach dem Login kopieren

4. Bearbeiten Sie die Datei CATALINA_HOME/conf/context.xml auf allen Tomcat-Knoten und fügen Sie die folgende Konfiguration unter dem Tag hinzu.

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
        memcachedNodes="n1:cloud2:11211,n2:cloud3:11211"
        sticky="false"
        sessi
        lockingMode="auto"
        requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
/>
Nach dem Login kopieren
memcachedNodes ist der Knoten, auf dem Memcache konfiguriert und installiert ist, und cloud3 sind Hostnamen, die von diesem Computer erkannt werden müssen. n1 und n2 sind die Namen der von uns verwendeten Memcache-Knoten Der Port, den Memcache überwacht, ist 11211 der Standardport.

5. Fügen Sie einige JAR-Pakete zu CATALINA_HOME/lib hinzu

Die Pakete, die ich hier verwende, sind:

memcached-session-manager-1.8.3.jar
memcached-session-manager-tc8-1.8.3.jar
spymemcached-2.11.1.jar
Nach dem Login kopieren

6. Dann Tomcat und Nginx kann zum Testen gestartet werden

Meine Testidee hier ist wie folgt: Verwenden Sie den folgenden Code, um ein Servlet zu erstellen und es dann auf zwei Tomcat-Servern bereitzustellen. Starten Sie nur einen der Server und greifen Sie dann über den Browser auf den Lastausgleichsserver zu. Sie können die Sitzungs-ID zu diesem Zeitpunkt im Browser anzeigen und notieren. Schließen Sie dann diesen Server, starten Sie einen anderen Tomcat-Server und verwenden Sie dann dieselbe Adresse, um auf den Lastausgleichsserver zuzugreifen. Überprüfen Sie dann die Sitzungs-ID im Browser. Wenn die beiden Sitzungs-IDs identisch sind, bedeutet dies, dass die Sitzungs-ID gemeinsam genutzt wird.

package com.cyber_space.Servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.net.Inet4Address;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class TestServlet
 */
@WebServlet("/TestServlet")
public class TestServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public TestServlet() {
		super();
	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		handle(request, response);

	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		handle(request, response);
	}

	private void handle(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setHeader("Content-type", "text/html;charset=UTF-8");
		String remoteIpString = request.getRemoteAddr() + " " + request.getRemoteHost() + " " + request.getRemoteUser();
		PrintWriter pw = response.getWriter();
		pw.println("请求来自:" + remoteIpString);
		request.getSession().setAttribute("5", 5);
		String sessionID = request.getSession().getId();
		pw.println("赋予它的SESSIONID是:" + sessionID);
		Inet4Address inet4Address = (Inet4Address) Inet4Address.getLocalHost();
		pw.println("服务器的IP地址是:" + inet4Address.getHostAddress());
	}
}
Nach dem Login kopieren

Hier kann noch eine Menge Arbeit erledigt werden, die noch nicht erledigt wurde, wie z. B. eine effiziente Serialisierungskonfiguration usw. Wir werden dies tun, wenn wir in Zukunft Zeit haben .

Urheberrechtserklärung: Dieser Artikel ist ein Originalartikel des Bloggers und darf nicht ohne die Erlaubnis des Bloggers reproduziert werden.

Das Obige stellt die gemeinsame Nutzung von Tomcat8-Nginx-Memcache-Konfigurationsserver-Clustern unter Ubuntu1404 vor, einschließlich des Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage