我很难理解keepAlive选项传递给nodeJS mongo驱动程序。这个文档说keepAlive取布尔值,keepAliveInitialDelay是used to wait before initiating keepAlive on the TCP socket
这个文档表示keepAlive取一个整数值并读取The number of milliseconds to wait before initiating keepAlive on the TCP socket.
我尝试使用这两种方法,但没有发现任何不同之处,我还尝试了使用true和false值来表示keepAlive,对于keepAliveInitialDelay尝试了0、1和30000(默认值)。
keepAlive的正确方法是什么?keepAlive是做什么的?或者keepAlive选项的用途是什么?keepAlive设置为false或将其设置为0或1之后,它也没有任何区别?keepAlive会影响艺术品-> Server, ReplicaSet, Mongos。那么它在服务器端文档映射到哪个选项呢?我用的是芒果驱动器V3.3和蒙戈地图V4.2
提前谢谢。
发布于 2020-07-03 18:00:38
描述了TCP保持生存的机制这里.它用于:
当启用“保持活动”时,驱动程序指示网络堆栈在建立的连接上定期向服务器发送ping数据包。如果服务器的网络堆栈没有响应,则将连接标记为失败。
如果没有保持活力,驱动程序直到应用程序发出查询(并等待它被执行)之后才会发现一些网络问题。
驱动程序使用这里设置网络堆栈选项setKeepAlive。
要查看是否发送了“保持生命”,您需要使用像tcpdump这样的工具来检查驱动程序建立的连接上的通信量。
如果服务器使用系统范围内的“保持活动”值。低于300秒,则将保持活动间隔设置为300秒.
https://stackoverflow.com/questions/62718415
复制相似问题