In diesem Artikel wird die AppServer-Architektur im Detail untersucht und über den Überblick über hochrangige Übersicht in der vorherigen Rate hinausgeht. Wir werden uns mit Kontexten, Threading-Modellen und den Out-of-the-Box-Funktionen befassen, die mit den beliebten PHP-Frameworks mithalten. Wir konfigurieren auch den Webserver und untersuchen die Anwendungsstruktur. Am Ende verstehen Sie die Kontexte von AppServer, Threading und Setup. Zukünftige Teile werden den Servlet -Motor, den Persistenzbehälter, die Bohnen, die Nachrichten- und Timermodule abdecken.
AppServers eindeutiges Threading -Modell: Im Gegensatz zu Standard -Webservern verwendet AppServer ein Threading -Modell, bei dem Threads während der gesamten Lebensdauer des Servers bestehen. Dies verbessert die Leistung erheblich, indem der Overhead von Fadenerstellung und -zerstörung für jede Anfrage eliminiert wird.
Kontexte und Thread -Sicherheit: Kontexte in AppServer definieren die Laufzeitumgebung für jeden Thread. Dies ermöglicht den Thread-sicheren Datenaustausch und Vererbung, die Vereinfachung des Anwendungszustands und die Konfigurationsverwaltung. AppServer verwaltet dieses Teilen und verhindert potenzielle Konflikte.
Konfigurationsmethoden: AppServer verwendet Annotationen und XML -Konfigurationsdateien (wie web.xml
), um das Einrichten und die Anpassung von Routing, Servlets und anderen Komponenten einfach zu erstellen, wobei die Notwendigkeit einer umfassenden Codierung minimiert wird.
Programmierparadigmen: AppServer unterstützt die Aspekt-orientierte Programmierung (AOP) und das Design durch Vertrag, die Modularität und strengere Typisierung fördern.
Verzeichnisstruktur: AppServers Verzeichnisstruktur wird für die Anwendungsverwaltung und -bereitstellung optimiert. Zu den wichtigsten Verzeichnissen gehören:
/WEB-INF
: client-angemessene PHP-Klassen (Servlets, Controller). /META-INF
: Backend -Dienste, Aspekte, Einstiegspunkte des Domänenmodells. /common
: Shared Resources. /vendor
: Komponistenbibliotheken (PSR-0-Autolading unterstützt). /static
: Statische Assets (JS, CSS, Bilder).
Kontexte und Threading im Detail: AppServers Kontexthierarchie beginnt mit einem Root -Kontext, verzweigt sich in Container- und Serverkontexte (Hosting des Webservers). Arbeiterkontexte, konfigurierbar in der Nummer, verarbeiten parallele Anforderungsverarbeitung. Kinderkontexte erben selektiv von den Eltern (Hinweis: Dies ist kein Standard -OOP -Vererbung). Dieser anhaltende Kontext und der Datenaustausch tragen zu den Leistungsgewinnen von AppServer bei. Bootstrapping, oft ein Performance -Engpass, wird nur einmal beim Start durchgeführt.
Programmierkonzepte:
Der integrierte PHP-Webserver von AppServer (HTTP 1.1 mit geplantem HTTP 2.0) bietet Funktionen in vielen PHP-Frameworks. Es verwendet und $request
Objekte (über Schnittstellen wie $response
). Die Konfiguration ähnelt Apache und unterstützt Umschreibungen, virtuelle Hosts, Umgebungsvariablen und HTTP -Authentifizierung. Die Schlüsselkonfigurationsdateien befinden sich in HttpServletRequestInterface
. /etc/appserver
Erstellen eines virtuellen Host >).
www.my-app.com
my-app.com
AppServer -Dateistruktur: Das Verzeichnis
/webapps
Die Servlet -Engine: Die Servlet -Engine behandelt die Anwendungslogik und beseitigt den Leistungsschlag von wiederholtem Bootstrapping in herkömmlichen PHP -Setups. Kommunikation zwischen der Servlet -Engine (
) verwendet Proxy -Objekte, wodurch verteilte Architekturen aktiviert werden.
/WEB-INF
Schlussfolgerung: /META-INF
Dieser Artikel bietet einen umfassenden Überblick über die Architektur und Konfiguration von AppServer. Zukünftige Artikel werden die verbleibenden Module genauer untersuchen.
(Der häufig gestellte Fragen wird weggelassen, da es sich um eine Wiederholung von Informationen handelt, die bereits im Artikel behandelt werden.)
Das obige ist der detaillierte Inhalt vonAppServer - Serverkonfiguration, DIR -Struktur und Threads. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!