java - Spring MVC Rest - 我如何知道用户在等待响应时是否失去连接?

标签 java spring spring-mvc

我有一个 Spring 4 MVC 应用程序,它提供 REST API 服务。我正在尝试调试用户似乎失去连接的问题,但我不确定如何在应用程序级别捕获此信息。

是否有日志记录级别或我可以打开的功能?在日志中,看起来请求刚刚停止处理,但我没有看到任何错误。

最佳答案

您无法检查的是下载速度,因为它的硬件缓冲区是基于 block 的。您可以将 block 大小设置为 1 字节,这样在较小的带宽中所花费的时间就会成倍增加。如果套接字关闭,这可能会引发异常。

要引发一些异常,您可以减少套接字超时(等待读取字节的时间)。这是一个配置问题,您应该检查 Web 容器的文档(tomcat 中的 connectionTimeout)。

并非所有操作系统都支持此 SO_TIMEOUT,但常见操作系统应该能够配置它。

无论如何,这是 Web 容器(如 tomcat)的任务,因此它与应用程序分离(在我看来这是有充分理由的)。

您可以检查 chrome 浏览器开发工具是否可以模拟慢速带宽。

关于java - Spring MVC Rest - 我如何知道用户在等待响应时是否失去连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44398887/

相关文章:

Spring 数据存储库 java.util.NoSuchElementException

java - Spring - 将 BindingResult 添加到新创建的模型属性

java - 是否可以创建 jbutton 的自定义版本来限制对某些方法的访问?

Java ProcessBuilder 输出到字符串

java - 在后端和其他服务之间保存用户登录的安全方法

java - Spring @RestController 注释,带有来自 beans.xml 的根上下文

java - Spring Boot 服务静态资源 - sitemap.xml

java - 读入文件并打印出字母频率

java - Spring 对象映射器 covertValue 方法不转换某些字段

java - Spring Boot执行器端点未激活