我正在调查一个非常奇怪的问题。我正在处理的项目使用 Spring-remoting 通过 http 调用方法。从我到目前为止收集的信息中,发生了以下情况:
- 我的客户端代码向服务器执行请求
- 服务器开始处理请求,但速度很慢
- 25-30 秒后,一个新的请求进入服务器
- 第二个请求完成,客户端继续处理
- 一段时间后,第一个请求完成,但客户端不再关心
由于我的客户端代码只对 Spring 远程客户端执行一个请求,并且客户端在它接收到的第二次调用完成后继续运行,因此我只能得出结论,这发生在 Spring 远程客户端的某个地方。
客户端用于AbstractHttpInvokerRequestExecutor
进行实际的 http 调用,而这又用于SimpleHttpInvokerRequestExecutor
发出请求。但是,据我所知,这没有重试请求的机制。所以现在我很困惑。
谁能想到可能导致这种行为的原因?(我试图让问题保持干净,但如果需要,我会提供更多详细信息。)