Je dois créer une application Web .net qui s'exécuterait sur plusieurs serveurs frontaux à charge équilibrée. Maintenant, je dois utiliser une API tierce qui n'est pas thread-safe donc un seul thread doit appeler l'API à la fois, donc je dois utiliser un machanisme de synchronisation comme lock ou mutex qui assure la synchronisation au sein du processus et à travers le processus. Maintenant, verrouiller ou mutex fonctionner dans un environnement multiserveur loadbalanced correctement? Si non alors y a-t-il un mécanisme permettant de synchroniser tous les threads de mon application dans toutes les machines?Comment réaliser la synchronisation dans un environnement multiserveur à charge équilibrée
Répondre
En quoi l'API tierce ne protège-t-elle pas les threads? Habituellement cela signifie que vous ne pouvez l'appeler qu'à partir d'un fil par processus - mais vous pouvez l'appeler à partir de plusieurs processus différents en même temps, à moins qu'ils n'accèdent tous à une seule ressource partagée.
Si vous pouviez nous en dire plus sur l'API, cela peut aider ...
EDIT: D'accord, comme il est à l'aide d'une seule ressource partagée, vous voudrez peut-être envisager la création d'un serveur que tous les autres se connectent à et quelle est la machine seule pour utiliser cette API tierce. Cela peut impliquer une file d'attente de messages pour les demandes, ou éventuellement un simple service Web. Évidemment, ce serait un point de défaillance unique et un goulot d'étranglement dans le système - si vous pouvez trouver un moyen d'éviter la ressource partagée unique, ce serait préférable.
Vous pourriez potentiellement éviter qu'il s'agisse d'un point de défaillance unique en ayant plusieurs machines «essayant» d'être ce maître, par ex. en maintenant un verrou de base de données. Bien sûr, cela revient à votre question initiale d'un verrou partagé - mais cela signifie que vous n'essayez pas d'acquérir ce verrou pour chacune des opérations d'API tierces - juste pour avoir le privilège d'être le "maître actif".
- 1. Gestion de l'index Zend_Search_Lucene dans un environnement à charge équilibrée
- 2. Maintien de l'état dans un serveur à charge équilibrée?
- 3. Y a-t-il un problème avec les ensembles de données ADO.NET dans un environnement à charge équilibrée?
- 4. Exécution d'un site django dans un environnement multiserveur - comment gérer les sessions?
- 5. Recherche de solution WCF pour transmettre les informations d'identification de l'utilisateur dans un environnement à charge équilibrée avec liaison personnalisée
- 6. gestion de session pour une charge équilibrée site
- 7. Conversion d'un service Web C++ existant en un serveur à charge équilibrée?
- 8. Rendre une charge de service avec état équilibrée et redondante
- 9. Partage de données entre deux instances dans une application Web Java à charge équilibrée
- 10. suggestion de framework multiserveur nécessaire
- 11. Comment réaliser la "planification" dans Google App Engine
- 12. Comment séparer un environnement de développement d'un environnement de production
- 13. Comment développer des applications web multiserveur?
- 14. Algorithme de distribution équilibrée
- 15. Requête MySQL équilibrée-distribuée?
- 16. Qu'est-ce qu'une installation multiserveur dans Coldfusion?
- 17. Comment réaliser un rouleau de nouvelles RSS?
- 18. Comment créer un nouvel environnement Beamer avec un environnement verbatim?
- 19. Comment avoir des services Web à charge équilibrée qui envoient des messages avec nservicebus à plusieurs abonnés?
- 20. Java. Sérialisation d'objets dans un environnement multithread
- 21. Comment réaliser la déconnexion automatique en PHP?
- 22. Comment configurer dotNetOpenId dans un environnement sans équilibrage de charge de session
- 23. Comment configurer un environnement de développement à la maison?
- 24. Comment réaliser l'effet Machine à écrire dans JavaFX?
- 25. MySql dans un environnement de cluster
- 26. Comment réaliser cet effet simple dans jQuery?
- 27. Comment accéder à SVN via HTTP dans un environnement Windows?
- 28. Comment configurer la recherche EJB dans un environnement websphere clusterd
- 29. BufferedReader dans un environnement multithread
- 30. Comment réaliser la disposition de flux dans XUL?
Actuellement, l'API utilise une seule ressource partagée en interne, donc un seul thread doit l'appeler à la fois. – Anoop