Aller http.Obtenir, de la simultanéité, et “Connection reset by peer”

J'ai entre 1000-2000 les pages web pour téléchargement à partir d'un serveur, et je suis aller à l'aide de routines et de moyens pour atteindre un rendement élevé. Le problème est que chaque fois que je lance mon programme jusqu'à 400 demandes d'échouer avec le message d'erreur "connection reset by peer". Rarement (peut-être 1 fois sur 10), aucune demande d'échouer.

Que puis-je faire pour éviter cela?

Une chose qui est intéressant, c'est que quand j'ai couru ce programme sur un serveur dans le même pays que le serveur du site internet est hébergé, 0 demande échoué, de sorte que je suppose il y a un problème avec retard (comme il est maintenant en cours d'exécution sur un serveur sur un autre continent).

Le code que j'utilise est en fait qu'une simple http.Get(url) de demande, pas de paramètres supplémentaires ou un client personnalisé.

  • Sont tous ou une grande partie des pages à venir sur le même serveur? quel est le nombre maximum de demandes que vous faites en même temps?
  • Toutes les pages sont de la même serveur (révision de la question afin de refléter cette). Je ne suis pas sûr de savoir comment beaucoup de sont faites en temps réel. Je viens de commencer comme un grand nombre de routines comme il y a des pages web pour télécharger et de laisser le CPU/Golang imposer des limites sur la simultanéité.
  • Il n'y a pas de limites définies sur la simultanéité, vous devez le faire vous-même.
InformationsquelleAutor fgblomqvist | 2016-06-12