EinführungEs gibt viele IO-Typen, vom anfänglichen Block-IO über nicht blockierendes IO bis hin zu IO-Multiplexing und asynchronem IO, um die IO-Leistung schrittweise zu maximieren. Heute stellen wir vor, wie Sie mit Tomcat Native die Effizienz von Tomcat IO verbessern können. So stellen Sie eine Verbindung zu Tomcat herIn Tomcat werden Konnektoren verwendet, um die Kommunikation mit externen Clients abzuwickeln. Der Connector wird hauptsächlich verwendet, um Anfragen von externen Clients anzunehmen und sie zur Verarbeitung an die Verarbeitungs-Engine zu übertragen. Es gibt zwei Arten von Konnektoren in Tomcat. Einer ist der HTTP-Anschluss und der andere ist der AJP-Anschluss. Der HTTP-Connector sollte für jeden leicht verständlich sein. Es handelt sich auch um den von Tomcat verwendeten Standardconnector. Es gibt auch einen Connector namens AJP, der hauptsächlich zur Kommunikation mit Webservern verwendet wird. Da das AJP-Protokoll schneller als HTTP ist, kann AJP neben der Kommunikation mit anderen Webservern auch zum Erstellen eines Tomcat-Clusters verwendet werden. Beide Methoden unterstützen 4 Protokolle, nämlich BIO, NIO, NIO2 und APR. #Die folgenden vier Connector-Implementierungen verarbeiten alle direkt HTTP-Anfragen von Clients org.apache.coyote.http11.Http11Protocol: Ein Connector, der das HTTP/1.1-Protokoll unterstützt. org.apache.coyote.http11.Http11NioProtocol: Ein Connector, der das HTTP/1.1-Protokoll + neue IO unterstützt. org.apache.coyote.http11.Http11Nio2Protocol: Ein Connector, der das HTTP/1.1-Protokoll + New IO2 unterstützt. org.apache.coyote.http11.Http11AprProtocol : Ein Connector, der die APR-Technologie (Apache Portable Runtime) verwendet und Native #Die folgenden vier Implementierungsmethoden beziehen sich auf den Webserver org.apache.coyote.ajp.AjpProtocol: Verwenden Sie den AJP-Protokollconnector, um die Kommunikation mit dem Webserver (z. B. Apache httpd) zu erreichen. org.apache.coyote.ajp.AjpNioProtocol: SJP-Protokoll + Neues IO org.apache.coyote.ajp.AjpNio2Protocol: SJP-Protokoll + Neues IO2 org.apache.coyote.ajp.AjpAprProtokoll: AJP + APR Lassen Sie uns über ihre Unterschiede sprechen. BIO ist Block-IO, die grundlegendste IO-Methode. Wir konfigurieren es wie folgt: <Anschlussport="8080" Protokoll="HTTP/1.1" maxThreads="150" VerbindungsTimeout="20000" UmleitungsPort = ”8443” /> Tomcat-Versionen unter 7 laufen standardmäßig im Bio-Modus. Seit Tomcat 8.5 hat Tomcat die Unterstützung für BIO entfernt. New IO ist eine IO-Methode, die auf dem Paket java.nio und seinen Unterpaketen basiert. Es verfügt über einen nicht blockierenden IO-Modus und hat eine effizientere Betriebseffizienz als herkömmliches BIO. Wir konfigurieren New IO wie folgt: <Connector-Port="8080" Protokoll="org.apache.coyote.http11.Http11NioProtocol" VerbindungsTimeout="20000" UmleitungsPort="8443" /> Was ist der Unterschied zwischen New IO und New IO2? New IO2 ist die in Tomcat8 eingeführte IO-Methode. Wir können sie wie folgt konfigurieren: <Connector-Port="8080" Protokoll="org.apache.coyote.http11.Http11Nio2Protocol" VerbindungsTimeout="20000" UmleitungsPort="8443" /> Die APR-Methode ist fortgeschritten, und dies ist die Hauptfunktion von Tomcat Native, die wir heute erklären werden. APR und Tomcat NativeDer vollständige Name von apr lautet Apache Portable Runtime. Dabei handelt es sich um eine äußerst portable Bibliothek und den Kern von Apache HTTP Server 2.x. APR hat viele Einsatzmöglichkeiten, darunter den Zugriff auf IO-Funktionen auf hoher Ebene (wie Sendfile, Epoll und OpenSSL), Funktionen auf Betriebssystemebene (Generierung von Zufallszahlen, Systemstatus usw.) und die native Prozessverarbeitung (gemeinsam genutzter Speicher, NT-Pipes und Unix-Sockets). Tomcat kann die zentrale dynamische Linkbibliothek des Apache-HTTP-Servers in Form von JNI aufrufen, um Dateilese- oder Netzwerkübertragungsvorgänge abzuwickeln, wodurch die Verarbeitungsleistung von Tomcat für statische Dateien erheblich verbessert wird. Durch die Verwendung von APR können wir die folgenden Funktionen erhalten:
Tomcat Native ist eine Bibliothek, die Tomcat die Verwendung von APR ermöglicht. Daher ist die Installation der APR-Bibliothek, von OpenSSL und JDK Voraussetzung für die Verwendung von Tomcat Native. Wir können apr und openssl folgendermaßen installieren: Debian-basiertes Linux-System: apt-get installiere libapr1.0-dev libssl-dev RPM-basierte Linux-Systeme: yum installiere Apr-Devel OpenSSL-Devel Unter Windows wird tcnative in Form einer DLL bereitgestellt und wir können es direkt herunterladen und verwenden. Aufgrund der unterschiedlichen Plattformen muss tcnative unter Linux jedoch selbst kompiliert werden. Im Allgemeinen finden wir das Quellpaket von tcnative in bin/tomcat-native.tar.gz. Entpacken Sie es. Führen Sie zuerst den Konfigurationsbefehl aus: ./configure --with-apr=/usr/bin/apr-1-config \ --with-java-home=/home/jfclere/JAVA/jdk1.7.0_80/ \ --mit-ssl=ja \ --prefix=$CATALINA_HOME Führen Sie dann den Make-Vorgang aus: machen && machen installieren Die generierten Bibliotheksdateien werden in $CATALINA_HOME/lib abgelegt. Verwenden von APR in TomcatNach der Installation von tcnative können wir APR in Tomcat verwenden. Prüfen Sie zunächst, ob in conf/server.xml folgende Konfiguration vorhanden ist: <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> Dann müssen wir $CATALINA_HOME/bin/setenv.sh ändern, um die tc-native Lib-Datei zu LD_LIBRARY_PATH hinzuzufügen. LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CATALINA_HOME/lib exportiere LD_LIBRARY_PATH Fügen Sie abschließend die APR-Verbindung hinzu: <Connector-Port="8080" Protokoll="org.apache.coyote.http11.Http11AprProtocol" VerbindungsTimeout="20000" UmleitungsPort="8443" /> Führen Sie es einfach aus. Aus dem Protokoll können wir Folgendes entnehmen:
Dies zeigt an, dass APR installiert wurde und verwendet wird. Dies ist das Ende dieses Artikels über die Verwendung von Tomcat Native zur Verbesserung der Tomcat-IO-Effizienz. Weitere Informationen zur Verwendung von Tomcat Native zur Verbesserung der Tomcat-IO-Effizienz finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erläuterung des Replikationskonfigurationsbeispiels zwischen MySQL-Containern
>>: Welche Regeln gelten für den Kontext in JavaScript-Funktionen?
Inhaltsverzeichnis 1. Was ist Set 2. Konstruktor ...
Szenario: Nach der Installation der neuesten Vers...
Dieses Mal verwenden wir HTML+CSS-Layout, um eine...
Die Lösung für das Problem, dass Ubuntu 18.04 in ...
Details zur Sicherheitsanfälligkeit VSFTP ist ein...
Einführung in strukturelle Pseudoklassenselektore...
Ich habe kürzlich an einer Popup-Anzeige gearbeite...
Hallo zusammen, ich bin Liang Xu. Bei der Verwend...
Inhaltsverzeichnis 1. Objektänderungserkennung 2....
Code kopieren Der Code lautet wie folgt: <span...
Inhaltsverzeichnis Hintergrund Warum Fehlerbehand...
Da immer mehr Projekte bereitgestellt werden, wer...
Inhaltsverzeichnis 1. Grundlegende Speicherung vo...
Heute habe ich eine Aktivität für einen roten Ums...
Verschlüsselung und Entschlüsselung sind wichtige...