web-dev-qa-db-fra.com

sélectionner vs sondage vs epoll

Je suis en train de concevoir un nouveau serveur qui doit prendre en charge des milliers de connexions UDP (quelque 100 000 sessions environ). Avez-vous des suggestions ou des suggestions sur laquelle utiliser?

63
ravi

La réponse est epoll si vous utilisez Linux, kqueue si vous utilisez FreeBSD ou Mac OS X et des ports d'achèvement d'E/S si vous utilisez Windows.

Certaines choses supplémentaires que vous voudrez (presque certainement) rechercher sont:

  • Techniques d'équilibrage de charge
  • Réseau multi-thread
  • Architecture de base de données
  • Tables de hachage parfaites

De plus, il est important de noter que UDP n'a pas de "connexions" par opposition à TCP. Il serait également dans votre intérêt de commencer petit et à grande échelle, car le débogage de solutions basées sur le réseau peut être difficile.

44
Kalantir

L'auteur de CURL a écrit un article étonnant sur sondage vs sélection vs bibliothèques d'événements.

40
unixman83

Linux: epoll FreeBSD: kqueue Windows: ??

Il existe des bibliothèques d'encapsuleurs, telles que libevent et libev, qui peuvent en faire abstraction pour vous.

18
Yann Ramin