Java 套接字超时对性能的影响

Java 套接字超时对性能的影响,java,spring,mongodb,spring-data,mongotemplate,Java,Spring,Mongodb,Spring Data,Mongotemplate,我在spring应用程序中使用以下MongoDB配置: 套接字保持活动=true 插座超时=1500 我的应用程序在保存>=200000条记录时抛出套接字超时异常。但如果将套接字超时值保持为15000毫秒,则工作正常。 我想知道,如果我保持套接字超时60000毫秒,那么它会影响应用程序性能吗?驱动程序不知道连接上是否没有接收到数据,因为服务器正在执行查询,还是因为连接已断开。如果将套接字超时设置为1.5秒,则执行时间超过1.5秒的所有查询都将收到超时错误 因此,默认情况下,驱动程序不设置套接字超

我在spring应用程序中使用以下MongoDB配置:

套接字保持活动=true 插座超时=1500

我的应用程序在保存>=200000条记录时抛出套接字超时异常。但如果将套接字超时值保持为15000毫秒,则工作正常。
我想知道,如果我保持套接字超时60000毫秒,那么它会影响应用程序性能吗?

驱动程序不知道连接上是否没有接收到数据,因为服务器正在执行查询,还是因为连接已断开。如果将套接字超时设置为1.5秒,则执行时间超过1.5秒的所有查询都将收到超时错误

因此,默认情况下,驱动程序不设置套接字超时

如果设置套接字超时,则需要确保它超过正在发出的查询的执行时间


驱动程序设置TCP keepalives,以便在网络层上的连接超时时收到通知。您可以缩短系统范围内的TCP保持时间间隔,以更快地检测断开连接。

驱动程序不知道是因为服务器正在执行查询,还是因为连接断开,连接上没有接收到数据。如果将套接字超时设置为1.5秒,则执行时间超过1.5秒的所有查询都将收到超时错误

因此,默认情况下,驱动程序不设置套接字超时

如果设置套接字超时,则需要确保它超过正在发出的查询的执行时间

驱动程序设置TCP keepalives,以便在网络层上的连接超时时收到通知。您可以缩短系统范围内的TCP保持时间间隔,以更快地检测死连接