2010-10-20 3 views

Répondre

12

Un serveur web a besoin pour gérer les connexions simultanées. Il y a plusieurs façons de le faire, certaines d'entre elles sont:

  • Un processus par connexion.
  • Un processus par connexion et un pool de processus prêts à l'emploi.
  • Un thread par connexion.
  • Un thread par connexion et un pool de threads prêts à l'emploi.
  • Un seul processus, gérer chaque événement (connexion acceptée, données disponibles à lire, écriture possible sur le client, ...) sur un rappel.
  • Une combinaison de ce qui précède.
  • ...

A la fin, la distinction finit par être dans la façon dont vous stockez chaque état de connexion (explicitement dans une structure de contexte, implicitement dans la pile, de manière implicite dans une suite, ...) et comment vous planifiez entre les connexions (laissez le planificateur OS le faire, laissez les primitives d'interrogation OS le faire, ...).

1

manière EVENEMENTIEL vise à résoudre le problème C10K. Il transforme le «modèle push» traditionnel en un «modèle de traction» pour créer une E/S événementielle non bloquante. Autrement dit, l'architecture pilotée par les événements évite de générer des threads supplémentaires et des frais généraux de changement de contexte de thread, et se termine généralement par de meilleures performances et une consommation de ressources moindre.

Certains aperçu d'un développeur de rails, comprend également l'analogie: http://odysseyonrails.com/articles/8

+0

Notez que les réponses par liens uniquement sont déconseillées, les réponses SO devraient être l'aboutissement d'une recherche de solution (contre encore une autre escale de références, qui tendent à se périmer avec le temps). S'il vous plaît envisager d'ajouter un synopsis autonome ici, en gardant le lien comme référence. – kleopatra

Questions connexes