Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 如何在新的Springboot 2.1.4.0版本中禁用Webclient中的连接池?_Spring Boot_Reactor Netty - Fatal编程技术网

Spring boot 如何在新的Springboot 2.1.4.0版本中禁用Webclient中的连接池?

Spring boot 如何在新的Springboot 2.1.4.0版本中禁用Webclient中的连接池?,spring-boot,reactor-netty,Spring Boot,Reactor Netty,我正在使用springboot webclient从远程服务器调用RESTAPI。第一个请求很好。如果我在某个时间之后发出后续请求,服务器将抛出500个服务器错误。我得到的错误是“onError(java.io.IOException:远程主机强制关闭了现有连接)” 我想通过禁用连接池来测试该行为,因为我相信它使用了以前的连接。您能帮助我在创建webclient时如何禁用连接池吗 TcpClient tcpClient = TcpClient.create() .option(C

我正在使用springboot webclient从远程服务器调用RESTAPI。第一个请求很好。如果我在某个时间之后发出后续请求,服务器将抛出500个服务器错误。我得到的错误是“onError(java.io.IOException:远程主机强制关闭了现有连接)”

我想通过禁用连接池来测试该行为,因为我相信它使用了以前的连接。您能帮助我在创建webclient时如何禁用连接池吗

TcpClient tcpClient = TcpClient.create()
        .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 30000)
        .option(ChannelOption.SO_KEEPALIVE, false)
        .doOnConnected(connection ->
                connection.addHandlerLast(new ReadTimeoutHandler(30))
                        .addHandlerLast(new WriteTimeoutHandler(30))
        );

ReactorClientHttpConnector httpConnector = new ReactorClientHttpConnector(HttpClient.from(tcpClient));

final WebClient webClient = WebClient
        .builder()
        .clientConnector(httpConnector)
        .baseUrl("http://customer.service.api.internal.cloud.qa.intranet.pagseguro.uol")
        .exchangeStrategies(strategies)
        .build()

您可以使用下面的代码禁用连接池

TcpClient tcpClient = TcpClient.newConnection()
使用
wiretap(true)
检查服务器和客户端之间的通信量

您还可以启用Reactor Netty的日志记录,并跟踪连接是否被重用(在连接池场景中)

如果重新使用连接,您将看到

2019-04-11 18:52:10.049 DEBUG 98105 --- [ctor-http-nio-5] r.n.resources.PooledConnectionProvider   : [id: 0x897584fa, L:/<IP>:<PORT> - R:/<IP>:<PORT>] Channel acquired, now 1 active connections and 0 inactive connections

2019-04-11 18:52:10.049调试98105---[ctor-http-nio-5]r.n.resources.PooledConnectionProvider:[id:0x897584fa,L:/:-r:/:]已获取通道,现在有1个活动连接和0个非活动连接

还可以使用频道id
id:0x897584fa
跟踪频道发生的情况。

您能研究一下这个问题并帮我解决吗?
2019-04-11 18:52:10.049 DEBUG 98105 --- [ctor-http-nio-5] r.n.resources.PooledConnectionProvider   : [id: 0x897584fa, L:/<IP>:<PORT> - R:/<IP>:<PORT>] Channel acquired, now 1 active connections and 0 inactive connections