Redis connection to xxxx:xxxx failed - connect ETIMEDOUT
我在使用以下代码的 node.js 应用服务器上定期收到错误:node_redis连接到 redis 服务器。(服务器位于云环境中,错误发生在午夜左右 - 我假设是某种网络中断)。
该应用程序似乎不能很好地处理这种情况,我正尝试在本地重新创建该场景以尝试改善情况。
但是,我无法ETIMEDOUT
通过模拟问题的步骤导致问题。我怀疑这可能与应用程序和 redis 都驻留在同一个开发机器上有关,或者可能是因为开发环境是 windows 而生产环境是 linux。
有人可以建议我如何ETIMEDOUT
在本地重现该错误吗?
答案1
如果它是您尝试调试的应用程序或使其正确处理错误,请使其连接到虚假的 redis 服务器(例如在您的 Linux 机器 IP.AD.RE.SS:61610 上)并使用 iptables 将数据包丢弃到该端口。丢弃,不要拒绝(iptables -A INPUT -p tcp --dport 61610 -j DROP。当尝试连接到虚假服务器时,这应该会在本地为您提供 ETIMEDOUT。如果您只是想要随机超时,您也可以从 iptables 中执行此操作(仅将一些连接转发到真正的 redis 服务并丢弃其余部分)