取消信号关闭连接是什么原因?

问题描述

在我们的应用程序的Kibana中,我不断看到org.springframework.web.reactive.function.client.ExchangeFunctions的这一行日志:

[2f5e234b] Cancel signal (to close connection)

该线程大约为reactor-http-epoll-1

它可能在两种情况下发生:

  • 当连接成功并返回响应时,则没关系
  • 由于某种未知原因,在10秒钟后,连接不返回任何内容,并且此行也发生了,并且句号也仅此而已。似乎是超时,但我不确定(因为WebClient配置中的认超时为10s)

这可能是什么原因?客户主动掉线还是服务器主动拒绝?

第二种情况是否超时?但之后不会抛出TimeoutException()

我现在在WebClient中进行doOnCancel()登录以处理第二种情况,但是随后我注意到有一种情况,这种doOnCancel()处理不再有意义,因为它似乎发生了在所有情况下。

解决方法

我有相同的日志。但是在我的 WebClient 中,我返回 Mono.empty() 并且方法签名是 Mono。更改为 Mono 后,问题消失了。