Heim Java javaLernprogramm Welche Protokolle unterstützt die Java-Sprache?

Welche Protokolle unterstützt die Java-Sprache?

May 30, 2019 am 10:14 AM

Welche Protokolle unterstützt die Java-Sprache?

Das Folgende ist ein Vergleich mehrerer häufig verwendeter Kommunikationsprotokolle und der Protokollleistung in der Java-Sprache

1.RMI

RMI-Aufruf Wie erwartet ist RMI natürlich am schnellsten und benötigt in fast allen Fällen die wenigsten Millisekunden. Gerade wenn die Datenstruktur komplex und die Datenmenge groß ist, wird der Abstand zu anderen Protokollen besonders deutlich. Um die Leistung von RMI voll auszuschöpfen, haben wir eine separate Testklasse ohne Verwendung von Spring erstellt und dabei die ursprüngliche RMI-Form (die das UnicastRemoteObject-Objekt erbt) verwendet, um Dienste bereitzustellen und Remote-Anrufe zu tätigen, und die Effizienz mit dem RMI-Paket von Spring verglichen POJO. Die Ergebnisse zeigen, dass die beiden grundsätzlich gleich sind und der von Spring bereitgestellte Service etwas schneller ist. Zunächst wird angenommen, dass dies daran liegt, dass die Proxy- und Caching-Mechanismen von Spring relativ leistungsfähig sind, was die Zeit für den erneuten Erwerb von Objekten spart.

2. Hessian

Hessian nennt den Resin-Server der Firma Caucho, der als der schnellste Server gilt und im Java-Bereich einen gewissen Ruf genießt. Als Bestandteil von Harz ist das Design von Hessian außerdem sehr stromlinienförmig und effizient, und der tatsächliche Betrieb hat dies bewiesen. Im Durchschnitt ist Hessian etwa 20 % langsamer als RMI, dies kann sich jedoch nur dann widerspiegeln, wenn die Datenmenge besonders groß und die Datenstruktur komplex ist. Bei mittleren oder kleinen Datenmengen ist Hessian nicht langsamer als RMI. Der Vorteil von Hessisch besteht darin, dass es rationalisiert und effizient ist, sprachübergreifend verwendet werden kann und die Protokollspezifikationen öffentlich sind. Wir können Implementierungen seiner Protokolle für jede Sprache entwickeln. Zu den derzeit implementierten Sprachen gehören: Java, C++, .net, Python und Ruby. Es gibt noch keine Implementierung von Delphi. Darüber hinaus lässt sich Hessian sehr gut in den WEB-Server integrieren und bietet große Vorteile bei der Verwaltung des gleichzeitigen Zugriffs einer großen Anzahl von Benutzern, der Thread-Warteschlange, der Ausnahmebehandlung usw garantiert durch einen ausgereiften WEB-Server. RMI selbst stellt keinen Multithread-Server bereit. Darüber hinaus muss RMI einen Firewall-Port öffnen, Hessian jedoch nicht.

3.Burlap

Burlap und Hessian sind beide Open-Source-Produkte der Firma Caucho, aber Hessian verwendet das Binärformat, während Burlap das XML-Format verwendet. Die Testergebnisse zeigen, dass die Effizienz von Burlap immer noch akzeptabel ist, wenn die Datenstruktur nicht komplex und die Datenmenge mittelgroß ist. Bei großen Datenmengen nimmt die Effizienz jedoch stark ab. Im Durchschnitt ist die Anrufzeit pro Millisekunde von Burlap dreimal so hoch wie die von RMI. Ich denke, es gibt zwei Gründe für die geringe Effizienz. Der eine ist, dass es zu viele XML-Datenbeschreibungsinhalte gibt und das Übertragungsvolumen derselben Datenstruktur viel größer ist. Andererseits ist das Parsen von XML relativ ressourcenintensiv, insbesondere Dies gilt insbesondere für große Datenmengen.

4.HttpInvoker

HttpInvoker ist die von Spring Framework bereitgestellte JAVA-Remoteaufrufmethode, die den Java-Serialisierungsmechanismus verwendet, um die Übertragung von Objekten abzuwickeln. Den Testergebnissen nach zu urteilen ist seine Effizienz immer noch akzeptabel, im Grunde die gleiche wie bei RMI. Es kann jedoch nur für die Kommunikation zwischen JAVA-Sprachen verwendet werden und sowohl der Client als auch der Server müssen das SPRING-Framework verwenden. Darüber hinaus wurde HttpInvoker nicht in der Praxis getestet und es wurden noch keine Projekte gefunden, die dieses Protokoll anwenden.

5.Webservice

Bei diesem Test wurde die AXIS-Komponente von Apache ausgewählt, da die Implementierung von WEB SERVICE relativ ausgereift und im Bereich WEB SERVICE etabliert ist. Um nur die Zeit der Datenübertragung, Kodierung und Dekodierung zu testen, verwenden sowohl der Client als auch der Server Caching, und das Objekt muss nur einmal instanziiert werden. Testergebnisse zeigen jedoch, dass die Effizienz von Webdiensten immer noch zehnmal langsamer ist als bei anderen Kommunikationsprotokollen. Berücksichtigt man die Übertragung mehrerer Referenzen, die auf dasselbe Objekt verweisen, hinken Webservices noch weiter hinterher. Denn RMI, Hessian und andere Protokolle können Referenzen übergeben und die Anzahl der Referenzen, die ein Webdienst hat, hängt davon ab, wie viele Kopien von Objektentitäten er hat. Zu viele redundante Informationen, die vom Webdienst übertragen werden, sind einer der Gründe für die langsame Geschwindigkeit. Die Überwachung ergab, dass für dieselbe Zugriffsanforderung, die dieselben Daten beschreibt, die vom Webdienst zurückgegebene Datenmenge das 6,5-fache des Hessischen Protokolls beträgt. Darüber hinaus nimmt die Verarbeitung von WEB SERVICE viel Zeit in Anspruch. Der aktuelle XML-Parser ist im Allgemeinen nicht effizient und die Verarbeitung von XML-Beans nimmt viele Ressourcen in Anspruch. Den Testergebnissen zufolge sind Remote-Aufrufe schneller als lokale Aufrufe, was auch zeigt, dass die Zeit hauptsächlich für die Kodierung und Dekodierung von XML-Dateien aufgewendet wird. Dies ist schwerwiegender als redundante Informationen. Redundante Informationen belegen nur die Netzwerkbandbreite, und der Ressourcenverbrauch jedes Anrufs wirkt sich direkt auf die Auslastungskapazität des Servers aus. (MS-Ingenieure sagten einmal, dass WEB SERVICE nicht mehr als 100 gleichzeitige Benutzer laden kann.) Während des Tests wurde auch festgestellt, dass die Codierung von Webdiensten nicht sehr praktisch ist. Für nicht grundlegende Typen müssen Serialisierungs- und Deserialisierungsklassen einzeln registriert werden Erstens, was sehr schwierig ist. Das Generieren von Stubs ist ermüdender und nicht so reibungslos und prägnant wie die Verarbeitung mit Feder + RMI/Hessian. Darüber hinaus unterstützt der Webdienst keine Sammlungstypen und kann nur Arrays verwenden, was unpraktisch ist.

Das obige ist der detaillierte Inhalt vonWelche Protokolle unterstützt die Java-Sprache?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle? Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle? Mar 17, 2025 pm 05:35 PM

Mit der Klassenbelastung von Java wird das Laden, Verknüpfen und Initialisieren von Klassen mithilfe eines hierarchischen Systems mit Bootstrap-, Erweiterungs- und Anwendungsklassenloadern umfasst. Das übergeordnete Delegationsmodell stellt sicher

Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache? Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache? Mar 17, 2025 pm 05:44 PM

In dem Artikel wird in der Implementierung von mehrstufigem Caching in Java mithilfe von Koffein- und Guava-Cache zur Verbesserung der Anwendungsleistung erläutert. Es deckt die Einrichtungs-, Integrations- und Leistungsvorteile sowie die Bestrafung des Konfigurations- und Räumungsrichtlinienmanagements ab

Wie kann ich JPA (Java Persistence-API) für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden verwenden? Wie kann ich JPA (Java Persistence-API) für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden verwenden? Mar 17, 2025 pm 05:43 PM

In dem Artikel werden mit JPA für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden erläutert. Es deckt Setup, Entity -Mapping und Best Practices zur Optimierung der Leistung ab und hebt potenzielle Fallstricke hervor. [159 Charaktere]

Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung? Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung? Mar 17, 2025 pm 05:46 PM

In dem Artikel werden Maven und Gradle für Java -Projektmanagement, Aufbau von Automatisierung und Abhängigkeitslösung erörtert, die ihre Ansätze und Optimierungsstrategien vergleichen.

Wie erstelle und verwende ich benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning und Abhängigkeitsmanagement? Wie erstelle und verwende ich benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning und Abhängigkeitsmanagement? Mar 17, 2025 pm 05:45 PM

In dem Artikel werden benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning- und Abhängigkeitsmanagement erstellt und verwendet, wobei Tools wie Maven und Gradle verwendet werden.

See all articles