1 votes

Comment reproduire la lecture d'ETIMEDOUT avec node_redis sur ma machine de développement locale ?

Je reçois périodiquement Redis connection to xxxx:xxxx failed - connect ETIMEDOUT sur mes serveurs d'applications node.js qui utilisent nœud_redis pour se connecter à un serveur redis. (Les serveurs sont dans un environnement en nuage, et les erreurs se produisent vers minuit - je suppose une sorte de perturbation du réseau).

L'application ne semble pas très bien gérer cette situation, et j'essaie de recréer le scénario localement pour tenter d'améliorer les choses.

Cependant, je ne parviens pas à provoquer un ETIMEDOUT avec les étapes que j'ai suivies pour simuler le problème. Je pense que cela peut être lié au fait que l'application et redis résident sur la même machine de développement, ou peut-être que c'est parce que l'environnement de développement est Windows et l'environnement de production est Linux.

Quelqu'un pourrait-il me suggérer comment recréer le ETIMEDOUT l'erreur localement ?

3voto

Jin Yong Points 7101

Si c'est l'application que vous essayez de déboguer ou de faire en sorte qu'elle gère l'erreur correctement, faites-la se connecter sur un faux serveur redis (par exemple sur votre machine linux IP.AD.RE.SS:61610) et laissez tomber les paquets vers ce port avec iptables. laissez tomber, ne rejetez pas (iptables -A INPUT -p tcp --dport 61610 -j DROP. Cela devrait vous donner un ETIMEDOUT localement lorsque vous essayez de vous connecter au faux serveur. Si vous voulez juste des délais d'attente RANDOM, vous pouvez le faire à partir d'iptables également (en transférant seulement certaines connexions au vrai service redis et en abandonnant le reste).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X