Ich habe gelesen, dass Asyn Verarbeitung von HTTP-Anfrage in Tomcat 7 durch die Verwendung von SIP kann eine Web-Anwendungen Leistung zu verbessern, aber ich war mir nicht sicher, wie wahr das war. Ich habe gelesen, dass, wenn der Browser seine HTTP-Anfrage macht, der Thread, der diese Anfrage bearbeitet, einen neuen Thread erzeugt, der auf dem SIP-Enpoint sitzt und auf neue Aktivitäten wartet, und dann der Thread, der anfänglich die Anfrage bearbeitet hat. Aber jetzt sitzt noch ein Thread im Leerlauf und hört am SIP-Endpunkt. Ist das wirklich besser?Async-Anfrage Leistung mit SIP Servlet in Tomcat 7
Antwort
Es sollte klargestellt werden, dass konvergierte HTTP/SIP-Anwendungen die Unterstützung der asynchronen Verarbeitung auf der Serverseite erheblich verbessern können, doch allein die asynchrone Verarbeitungsfunktion bietet eine höhere Leistung für den Webserver.
Java Servlet 3.0 hat die Unterstützung für die asynchrone Anforderungsverarbeitung eingeführt und Apache Tomcat 7 implementiert Java Servlet 3.0, sodass Sie dort die asynchrone Verarbeitung unterstützen.
Mobicents Sip Servlets 2.x (http://www.mobicents.org/products_sip_servlets.html) Plattform ist bereits in Tomcat 7 integriert, während das Team auf die Integration mit JBoss AS 7 hinarbeitet, was bedeutet, dass ein konvergiertes HTTP/SIP-Anwendung, die auf MSS 2.x-Plattform ausgeführt wird, kann von der asynchronen Verarbeitungsunterstützung profitieren. Sie können ein Beispiel für eine konvergente HTTP/SIP-Anwendung sehen, die die asynchrone Verarbeitungsunterstützung here verwendet. Die asynchrone Java Servlet 3.0-Unterstützung bietet eine Möglichkeit, die Anforderung in eine Warteschlange zu stellen, während sie darauf wartet, dass eine Ressource verfügbar wird oder auf ein Ereignis wartet, und den ursprünglichen Thread wiederzuverwenden und ihn somit für neue Clients verfügbar zu machen. Während sich die Anforderung in der Warteschlange befindet, werden keine Webserver-Threads dafür verbraucht. Dies ist eine effizientere Möglichkeit, die verfügbaren Webserver-Threads zu verarbeiten.
Also für Ihre Frage wird eine konvergierte Anwendung sowieso auf bestimmte SIP-Nachrichten wie SIP INVITE oder SIP BYE warten und wird nach Bedarf handeln. Wenn Sie in diesem Bild die asynchrone Java Servlets 3.0-Verarbeitung hinzufügen, können Sie eine Benutzeroberfläche (die Webseite des Clients) verwenden, die in jeder SIP-Nachricht ohne teure AJAX-Abfragemechanismen oder proprietäre APIs aktualisiert werden kann. Dies geschieht, indem die Anforderung des Clients während des Wartens auf eine SIP-Nachricht in eine Warteschlange gestellt und der ursprüngliche Thread freigegeben wird. Wenn eine neue SIP-Nachricht angezeigt wird, wird eine Antwort an den Client gesendet.
Hoffte, dass geholfen hat.