Schnell NIO, asynchrone HTTP-Server für Java

Folgenden auf diese Frage ich bin eigentlich in der phase der Suche nach der richtigen HTTP-container in einem meiner Projekte auch. Ich sah mehrere Container, aber ich bin noch nicht sicher welche am besten geeignet für high load AJAX nur Anfragen. Apache Mina sieht ganz vielversprechend aus, aber relativ Komplex sowie. Die asynchrone web-server-Implementierung genannt AsyncWeb zu haben scheint verschmolzen mit Mina, aber ich konnte nicht finden jede Produktions-Release von es, noch. In der anderen Frage habe ich empfohlen, Einfach HTTP server, die ich wirklich gerne mag, weil es ist... na ja, einfach, klar und sauber, aber ich weiß immer noch nicht ob es passen würde den Zweck.

Außerdem bin ich nicht sicher, auf welcher request-handling-Konzept zu wählen:

  1. Erstellen Sie einen dispatcher-Thread für jede eingehende Verbindung (Optimierungen könnten natürlich auch einen thread-pool und eine Versand-Warteschlange), das tut alle die Arbeit. Der Vorteil ist wahrscheinlich, dass ich don ' T haben zu bewältigen, die vielen Synchronisations-Probleme, aber es wird wahrscheinlich geringer der Durchsatz bei hohen Belastungen drastisch.

  2. Weil es ist eine sehr modulare Anwendung ein "pipelining" (könnte es einen passenderen Begriff, denke ich ; -) Ansatz funktionieren: Erstellen Sie eine Feste Anzahl von Threads, die jeweils für eine bestimmte Aufgabe.
    E. g. eine für die request-Verarbeitung -> eine für den Kopf der Deserialisierung (wenn ich den input in verschiedenen Formaten wie subtmitted HTML-Formularen, XML-RPC, JSON, etc.) -> für "Controller Dispatching" (zu tun, was ich will, zu tun mit diesen Daten) -> und eine für die Serialisierung der Ausgabe in das gewünschte format (JSON, XML, HTML, etc.) und jede Anfrage über diese Ebenen, bis es abgeschlossen ist. Wohl eher schwer zu realisieren, aber ich habe eine Feste Anzahl von Threads (die Zahl kann Abhänging von der hardware) und eine saubere Trennung der Bereiche.

Alle Erfahrungen, die mit jedem Rahmen, der passen könnte und die beiden unterschiedlichen Handhabung Ansätze?

  • werfen Sie einen Blick auf deftserver.org (junges Projekt und derzeit nicht für die Produktion geeignet, disclaimer: ich bin ein geschickter committer)
InformationsquelleAutor Daff | 2009-07-16
Schreibe einen Kommentar