J'ai l'intention de créer et de déployer un serveur personnalisé sur Azure. Je comprends que les données entrantes devront d'abord passer par l'équilibreur de charge avant d'arriver aux instances. Donc, afin d'écouter les demandes, j'ai besoin d'écouter sur un port attribué à partir de l'équilibreur de charge. Ma question est la suivante: y a-t-il un temps de latence lorsque les données entrantes doivent d'abord passer par LB? Et ai-je besoin de changer mon code pour être capable de se propager sur plusieurs instances ou l'équilibreur de charge va gérer ces choses pour moi?Frais généraux liés à l'exécution d'un serveur non HTTP dans une instance Azure?
Répondre
Il va y avoir une "certaine" latence due au fait que c'est encore une autre partie du chemin. Cependant, l'équilibreur de charge vers votre instance de machine virtuelle va être très rapide, car les deux sont dans le même centre de données. C'est simplement quelque chose qui fait partie du tissu Windows Azure.
L'équilibreur de charge lui-même n'est pas programmable par vous, et fournit essentiellement une distribution circulaire. Vous devez vous assurer que votre serveur n'a aucune dépendance sur sessions collantes - il n'y a absolument aucune garantie qu'un utilisateur qui visite Server0 visitera ensuite Server0 lors de la prochaine visite. Cela dit: Pour partager des informations d'état entre les instances, jetez un coup d'oeil à la Cache AppFabric, qui est entré en production il y a environ un mois. C'est Cache-as-a-Service, et fournit un moyen très rapide de stocker et de récupérer des paires clé/valeur. Plus d'informations sur AppFabric Cache est here.
Bien sûr, il y aura une certaine latence causée par l'équilibreur de charge. Mais le LB peut être assez simple, donc la latence devrait être minime.
Et le LB fait exactement ce qu'il dit sur la boîte - il équilibre juste la charge. Donc, si votre application est écrite, elle ne fonctionnerait pas correctement si l'utilisateur A accédait au serveur X et l'utilisateur B au serveur Y en même temps, cela ne fonctionnerait pas même si les deux utilisateurs pensent accédez au serveur Z à la place.
donc une solution possible est de stocker l'état de tous les clients dans une mémoire partagée entre les instances de rôle? – Hiroshi
Si par "état du client" vous voulez dire quelque chose comme session, alors il est possible que vous n'ayez pas à le partager, car smart LB envoie toujours un utilisateur au même serveur. Mais si votre LB n'est pas si intelligent, oui, vous avez partagé l'état. Le problème avec cela est que cela peut ne pas bien évoluer. – svick
Oui - vous devrez trouver un moyen de partager les informations d'état. Voir ma réponse, qui parle de Cache AppFabric. –
- 1. Frais généraux liés à l'utilisation du pool de connexions DB
- 2. Matlab dfeval frais généraux
- 3. Android - Frais généraux SendBroadcast
- 4. frais généraux de l'appel exec()?
- 5. Frais généraux de connexion ouverture
- 6. Comment mesurer les frais généraux
- 7. Frais généraux liés à la récupération de grandes entités dans Google App Engine
- 8. Postgres référence UUID frais généraux
- 9. Quels frais généraux à l'aide HttpContext.Items
- 10. Frais généraux de la DLL
- 11. Frais généraux de liaison WPF
- 12. Frais généraux de 64 bits
- 13. .NET Framework - Frais généraux par application
- 14. Frais généraux de VMA sous Linux
- 15. Comparaison de l'infrastructure et frais généraux
- 16. frais généraux de performance des transactions distribuées
- 17. Frais généraux avec PPP et Ethernet
- 18. Frais généraux de commande par le long
- 19. Python - Frais généraux des importations `.so`?
- 20. frais généraux de copie: double vs pointeurs
- 21. Frais généraux de création de SqlConnection dans C#
- 22. Quels sont les frais généraux quand j'utilise une classe Reference?
- 23. Frais généraux en obtenant des images sur la page Web
- 24. haut frais généraux dans la nouvelle table mysql
- 25. Éviter les frais généraux dans un « const » déclaration
- 26. Besoin d'aide dans MySQL DB Design (minimiser les frais généraux)
- 27. Combien de frais généraux 'Update Check' a pour LINQ UPDATES
- 28. Passer la mise en œuvre de l'interface sans frais généraux
- 29. NSKeyedArchiver sur NSArray a des frais généraux de grande taille
- 30. Y a-t-il beaucoup de frais généraux avec les téléchargements HTTP?
Merci pour l'info sur AppFabric Cache, j'allais utiliser dans la base de données de mémoire comme HSQLDB comme une solution, va jeter un coup d'oeil. Dommage que ma réputation soit trop basse pour voter votre réponse. – Hiroshi