Chine
Netpoll est un framework de mise en réseau d'E/S non bloquant hautes performances, axé sur les scénarios RPC, développé par ByteDance.
RPC est généralement lourd en logique de traitement et ne peut donc pas gérer les E/S en série. Mais le réseau de bibliothèques standard de Go est conçu pour bloquer les API d'E/S, de sorte que le framework RPC ne peut suivre que la conception One Conn One Goroutine. Cela entraînera une perte importante de coûts pour le changement de contexte, en raison du grand nombre de goroutines sous une forte concurrence. De plus, net.Conn n'a pas d'API pour vérifier Alive, il est donc difficile de créer un pool de connexions efficace pour le framework RPC, car il peut y avoir un grand nombre d'échecs de connexion dans le pool.
D'un autre côté, la communauté open source manque actuellement de bibliothèques réseau Go axées sur les scénarios RPC. Des référentiels similaires tels que : evio, gnet, etc., se concentrent tous sur des scénarios comme Redis, HAProxy.
Mais maintenant, Netpoll est né et a résolu les problèmes ci-dessus. Il s'inspire de la conception d'evio et netty, offre d'excellentes performances et est plus adapté à l'architecture de microservices. Netpoll fournit également un certain nombre de fonctionnalités et il est recommandé de remplacer net dans certains scénarios RPC.
Nous avons développé le framework RPC Kitex et le framework HTTP Hertz basés sur Netpoll, tous deux offrant des performances de pointe.
Des exemples montrent comment créer un client et un serveur RPC à l'aide de Netpoll.
Pour plus d’informations, veuillez vous référer au Document.
Déjà
IsActive
prend en charge la vérification si la connexion est activeDialer
prend en charge la création de clientsEventLoop
prend en charge la création d'un serveurAvenir
Non pris en charge
La référence doit répondre aux exigences d’une utilisation industrielle. Dans le scénario RPC, la concurrence et le délai d'attente sont des éléments de support nécessaires.
Nous fournissons le projet netpoll-benchmark pour suivre et comparer les performances de Netpoll et d'autres frameworks dans différentes conditions à titre de référence.
Plus de références font référence à kitex-benchmark et hertz-benchmark.