中文
Netpoll ist ein leistungsstarkes, nicht blockierendes I/O-Netzwerk-Framework, das sich auf RPC-Szenarien konzentriert und von ByteDance entwickelt wurde.
RPC beansprucht in der Regel viel Logik und kann daher E/A nicht seriell verarbeiten. Das Standardbibliotheksnetz von Go ist jedoch zum Blockieren von E/A-APIs konzipiert, sodass das RPC-Framework nur dem One Conn One Goroutine-Design folgen kann. Aufgrund der großen Anzahl von Goroutinen mit hoher Parallelität wird eine Menge Kosten für den Kontextwechsel verschwendet. Darüber hinaus verfügt net.Conn über keine API zum Überprüfen von Alive. Daher ist es schwierig, einen effizienten Verbindungspool für das RPC-Framework zu erstellen, da der Pool möglicherweise eine große Anzahl fehlgeschlagener Verbindungen enthält.
Andererseits mangelt es der Open-Source-Community derzeit an Go-Netzwerkbibliotheken, die sich auf RPC-Szenarien konzentrieren. Ähnliche Repositorys wie evio, gnet usw. konzentrieren sich alle auf Szenarien wie Redis, HAProxy.
Aber jetzt wurde Netpoll geboren und löste die oben genannten Probleme. Es ist vom Design von evio und netty inspiriert, weist eine hervorragende Leistung auf und eignet sich besser für die Microservice-Architektur. Außerdem bietet Netpoll eine Reihe von Funktionen. In einigen RPC-Szenarien wird empfohlen, Net zu ersetzen.
Wir haben das RPC-Framework Kitex und das HTTP-Framework Hertz auf Basis von Netpoll entwickelt, beide mit branchenführender Leistung.
Beispiele zeigen, wie man RPC-Client und -Server mit Netpoll erstellt.
Weitere Informationen finden Sie im Dokument.
Bereits
IsActive
unterstützt die Überprüfung, ob die Verbindung aktiv istDialer
unterstützt den Aufbau von ClientsEventLoop
unterstützt den Aufbau eines ServersZukunft
Nicht unterstützt
Benchmark soll den Anforderungen des industriellen Einsatzes genügen. Im RPC-Szenario sind Parallelität und Timeout notwendige Unterstützungselemente.
Wir stellen das Netpoll-Benchmark-Projekt zur Verfügung, um die Leistung von Netpoll und anderen Frameworks unter verschiedenen Referenzbedingungen zu verfolgen und zu vergleichen.
Weitere Benchmarks beziehen sich auf Kitex-Benchmark und Hertz-Benchmark.