2010-08-18 27 views
0

Je travaille avec un client dont l'administrateur du serveur refuse d'installer monit ou dieu sur leur serveur web pour redémarrer les mongrels/threads verrouillés ou lents car ils pensent que l'application devrait fonctionner correctement et les threads ne devraient jamais se verrouiller/ralentir. Malheureusement, leur application fait beaucoup d'appels à des services Web tiers, dont beaucoup sont lents, et leur base de données est fortement non optimisée (je ne peux pas accéder ou pousser pour changer cela) donc il y a beaucoup de requêtes AR lentes provoquant des délais d'attente.Existe-t-il un moyen de surveiller activement les requêtes HTTP sur Rails, pour diriger la requête vers un autre mongrel s'il arrive à expiration?

Est-il possible de surveiller activement les requêtes HTTP & si l'on est passé à un serveur lent/bloqué puis de le rediriger vers un serveur actif? Je sais que cela peut produire une réponse lente, mais mieux lent qu'une erreur de délai de connexion.

Merci!

Répondre

0

Vous pouvez installer HAProxy ou utiliser nginx comme équilibreur de charge round robin, mais je vous suggère de ne pas les utiliser et d'installer le Passenger gem disponible pour Apache ou nginx, la pile de Rails de facto depuis un moment. Vous pouvez également exécuter Passenger en développement (google pour les articles). Je vous suggère d'insister auprès de SysAdmin que Passenger fait partie de la pile d'applications.