Heim >类库下载 >java类库 >Das ausgereifteste Open-Source-NIO-Framework Netty

Das ausgereifteste Open-Source-NIO-Framework Netty

坏嘻嘻
坏嘻嘻Original
2018-09-13 18:19:013093Durchsuche

Netty ist ein leistungsstarkes, asynchrones ereignisgesteuertes NIO-Framework. Es bietet Unterstützung für TCP, UDP und Dateiübertragung. Über den Future-Listener-Mechanismus können Benutzer dies bequem tun Erhalten oder erhalten Sie die E/A-Vorgangsergebnisse aktiv über den Benachrichtigungsmechanismus.


Obwohl JDK eine umfangreiche NIO-Klassenbibliothek bereitstellt und es viele NIO-Lernroutinen im Internet gibt, ist es schwierig, die Java NIO-Klassenbibliothek direkt zu verwenden, um eine stabile Bibliothek zu entwickeln Es ist aus folgenden Gründen nicht einfach:

1) Die Klassenbibliotheken und APIs von NIO sind kompliziert und mühsam zu verwenden. Sie müssen sich mit Selector, Server Socket Channel und SocketChannel auskennen. ByteBuffer usw.

2) Sie benötigen weitere zusätzliche Fähigkeiten als Grundlage, z. B. Kenntnisse in der Java-Multithread-Programmierung. Dies liegt daran, dass die NIO-Programmierung den Reactor-Modus umfasst. Um hochwertige NIO-Programme schreiben zu können, müssen Sie mit Multithreading und Netzwerkprogrammierung bestens vertraut sein.

3) Um die Zuverlässigkeitsfähigkeit zu vervollständigen, sind der Arbeitsaufwand und die Schwierigkeit sehr groß. Beispielsweise ist der Client mit Problemen wie Trennung und Wiederverbindung, Netzwerkunterbrechung, Lesen und Schreiben halber Pakete, fehlgeschlagenem Caching, Netzwerküberlastung und abnormaler Code-Stream-Verarbeitung konfrontiert. Das Merkmal der NIO-Programmierung ist, dass die Funktionsentwicklung relativ einfach, aber zuverlässig ist Die Fähigkeiten müssen ergänzt werden. Der Umfang und der Schwierigkeitsgrad sind sehr groß.

4) JDK-NIO-Fehler, wie z. B. der berüchtigte Epoll-Fehler, der dazu führt, dass der Selector leer abfragt, was schließlich dazu führt, dass die CPU zu 100 % ausgelastet ist. Der Beamte behauptet, dass dieses Problem in UpdateI8 der JDK16-Version behoben wurde, das Problem jedoch bis zur JDK1.7-Version weiterhin besteht, die Wahrscheinlichkeit des Auftretens des Fehlers jedoch verringert und nicht grundlegend gelöst wurde. Dieser BUG und die damit verbundenen Problemtickets finden Sie unter folgendem Link:

http://bugsjava.com/bugdatabase/viewbug.do?bugid=6403933
http:/bugs.javacom /bugdatabase /viewbugdo?bugid=2147719

Mit der Entwicklung des Open-Source-NO-Frameworks übernehmen derzeit immer mehr kommerzielle Systeme die Methode der direkten Integration des Open-Source-NO-Frameworks, um die bisherigen selbst entwickelten Lösungen zu ersetzen . Nehmen Sie als Beispiel Netty, das ausgereifteste NIO-Framework. Es wurde von Hunderten von kommerziellen Projekten überprüft. Beispielsweise verwendet das RPC-Framework avro von Hadoop Netty als zugrunde liegendes Kommunikations-Framework, das zugrunde liegende Kommunikations-Framework des Echtzeit-Streaming-Computing-Frameworks Sum verwendet ebenfalls Netty und das interne RPC-Framework Finagle von Twitter, dessen zugrunde liegendes Kommunikations-Framework ebenfalls auf Netty aufbaut.


Das ausgereifteste Open-Source-NIO-Framework Netty

Die Vorteile von Netty lassen sich wie folgt zusammenfassen:

◎Die API ist einfach zu verwenden und die Entwicklungsschwelle ist niedrig.


◎Leistungsstark, mit mehreren voreingestellten Codec-Funktionen und Unterstützung für mehrere Mainstream-Protokolle.

◎ Starke Anpassungsmöglichkeiten, das Kommunikations-Framework kann durch ChannelHandler flexibel erweitert werden.

◎Hohe Leistung: Im Vergleich zu anderen Mainstream-NO-Frameworks in der Branche weist Netty die beste Gesamtleistung auf.

◎ Nety ist ausgereift und stabil und hat alle entdeckten JDK-NIO-Fehler behoben. Geschäftsentwickler müssen sich keine Sorgen mehr über N1O-Fehler machen.

◎Die Community ist aktiv, der Versionsiterationszyklus ist kurz und entdeckte Fehler können rechtzeitig behoben werden. Gleichzeitig werden weitere neue Funktionen hinzugefügt.

◎Erfahrene groß angelegte kommerzielle Anwendungstests und die Qualität wurde überprüft. Es wurde in vielen Branchen wie dem Internet, Big Data, Online-Spielen, Unternehmensanwendungen, Telekommunikationssoftware usw. erfolgreich kommerzialisiert und beweist, dass es die kommerziellen Anwendungen verschiedener Branchen vollständig erfüllen kann.

Netty schneidet so gut ab, dass unser Kommunikationsrahmen auf Basis von Netty entworfen und entwickelt wurde.

Dieser Artikel bezieht sich auf Li Linfengs „Prinzipien und Praktiken des Distributed Service Framework“, zusammengestellt von Shanghai Shangxuetang Java Training. Um weitere technische Java-Artikel zu lesen, kehren Sie bitte zu dieser Spalte zurück, um technische Informationen zu Java oder Lernvideos zu erhalten Bitte wenden Sie sich an die Kundendienstdame.

Die folgenden Artikel sind lesenswert: „Prinzipien und funktionale Merkmale der Distributed Service Architecture_Shanghai Java Training“, „Was ist Microservice Architecture?“ Der Unterschied zwischen Microservice-Architektur und SOA-Architektur“, „RPC-Architektur und -Prinzipien sowie eine Einführung in das gängige RPC-Framework der Branche“, „Einführung in das klassische vertikale Anwendungs-Framework-MVC-Framework“

Verwandte Empfehlungen:

Netty-Netzwerk-Framework basierend auf NIO (detaillierte Bild- und Texterklärung)

Detailliertes Beispiel des Netty-Thread-Modells

Das obige ist der detaillierte Inhalt vonDas ausgereifteste Open-Source-NIO-Framework Netty. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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