【发布时间】:2020-03-24 15:21:04
【问题描述】:
我使用spring cloud解决方案构建我的应用,都是SpringBoot应用,使用spring cloud gateway作为转发请求的API Gateway。
网关使用 reactor-netty 将 HTTP 请求转发到其他应用程序。
当我将我的应用程序部署到专业环境时,在 docker 中运行应用程序,每个应用程序都有一个单独的 docker 容器,容器是 Linux。然后我得到了很多 io.netty.channel.ConnectionTimeoutException。
pro环境对tcp连接有一个特殊的limited,当240秒内没有使用连接时,它会终止一个TCP连接,甚至不发送通知。
我尝试使用 ConnectionProvider.newConnection() 而是一个池提供程序,以确保为每个转发请求创建一个新的连接,但 TimeoutException 仍然发生。我不知道为什么,如果它与 240 秒限制有关。
我用的是Spring Cloud Gateway 2.1.3.RELEASE,reactor-netty版本是0.8.12。
希望有人能告诉我为什么以及如何解决这个问题。
pro环境用NAT、ACS、SDN,不知道这几个字是什么意思,可能对这个问题有帮助!
非常感谢!
【问题讨论】:
标签: spring connection timeout gateway reactor-netty