如何在我的本地开发机器上重现与node_redis的读取ETIMEDOUT?

我定期将Redis connection to xxxx:xxxx failed - connect ETIMEDOUT在使用node_redis连接到redis服务器的nod​​e.js应用程序服务器上Redis connection to xxxx:xxxx failed - connect ETIMEDOUT错误。 (服务器在云环境中,错误发生在午夜左右 – 我假设某种networking中断)。

应用程序似乎没有很好地处理这种情况,我试图在本地重新创build场景来尝试和改进的东西。

但是,我无法通过我已经采取的步骤来模拟该问题,导致ETIMEDOUT 。 我怀疑这可能是因为应用程序和Redis都驻留在同一个开发机器上,或者是因为开发环境是windows而生产环境是linux。

任何人都可以build议我可以在本地重新创buildETIMEDOUT错误?

如果这是你正在尝试debugging的应用程序,或者让它处理错误,请使用伪造的redis服务器(例如,在您的Linux机器IP.AD.RE.SS:61610上)连接并使用iptables将数据包丢弃到该端口。 drop,do not reject(iptables -A INPUT -p tcp –dport 61610 -j DROP。在尝试连接假服务器时应该在本地给你一个ETIMEDOUT,如果你只是想要RANDOM超时你可以从iptables (只转发一些连接到真正的redis服务,并放弃其余的)