wormsStorm opened a new issue, #5522:
URL: https://github.com/apache/shenyu/issues/5522

   ### Is there an existing issue for this?
   
   - [X] I have searched the existing issues
   
   ### Current Behavior
   
       @Override
       protected HttpClient createInstance() {
           // configure pool resources.
           HttpClientProperties.Pool pool = properties.getPool();
           ConnectionProvider connectionProvider = 
buildConnectionProvider(pool);
           HttpClient httpClient = HttpClient.create(connectionProvider)
                   .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 
properties.getConnectTimeout());
           if (serverProperties.getHttp2().isEnabled()) {
               httpClient = httpClient.protocol(HttpProtocol.HTTP11, 
HttpProtocol.H2);
           }
           HttpClientProperties.Proxy proxy = properties.getProxy();
           if (StringUtils.isNotEmpty(proxy.getHost())) {
               httpClient = setHttpClientProxy(httpClient, proxy);
           }
           httpClient.doOnConnected(connection -> {
               connection.addHandlerLast(new 
IdleStateHandler(properties.getReaderIdleTime(), 
properties.getWriterIdleTime(), properties.getAllIdleTime(), 
TimeUnit.MILLISECONDS));
               connection.addHandlerLast(new 
WriteTimeoutHandler(properties.getWriteTimeout(), TimeUnit.MILLISECONDS));
               connection.addHandlerLast(new 
ReadTimeoutHandler(properties.getReadTimeout(), TimeUnit.MILLISECONDS));
           });
           if (Objects.nonNull(loopResources)) {
               httpClient.runOn(loopResources);
           }
           HttpClientProperties.Ssl ssl = properties.getSsl();
           if (StringUtils.isNotEmpty(ssl.getKeyStorePath())
                   || 
ArrayUtils.isNotEmpty(ssl.getTrustedX509CertificatesForTrustManager())
                   || ssl.isUseInsecureTrustManager()) {
               httpClient = httpClient.secure(sslContextSpec -> 
setSsl(sslContextSpec, ssl));
           }
           if (properties.isWiretap()) {
               httpClient = httpClient.wiretap(true);
           }
           // set to false, fix java.io.IOException: Connection reset by peer
           // see https://github.com/reactor/reactor-netty/issues/388
           return httpClient.keepAlive(properties.isKeepAlive());
       }
   
   ### Expected Behavior
   
       @Override
       protected HttpClient createInstance() {
           // configure pool resources.
           HttpClientProperties.Pool pool = properties.getPool();
           ConnectionProvider connectionProvider = 
buildConnectionProvider(pool);
           HttpClient httpClient = HttpClient.create(connectionProvider)
                   .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 
properties.getConnectTimeout());
           if (serverProperties.getHttp2().isEnabled()) {
               httpClient = httpClient.protocol(HttpProtocol.HTTP11, 
HttpProtocol.H2);
           }
           HttpClientProperties.Proxy proxy = properties.getProxy();
           if (StringUtils.isNotEmpty(proxy.getHost())) {
               httpClient = setHttpClientProxy(httpClient, proxy);
           }
          // The httpClient needs to be reassigned
           httpClient=httpClient.doOnConnected(connection -> {
               connection.addHandlerLast(new 
IdleStateHandler(properties.getReaderIdleTime(), 
properties.getWriterIdleTime(), properties.getAllIdleTime(), 
TimeUnit.MILLISECONDS));
               connection.addHandlerLast(new 
WriteTimeoutHandler(properties.getWriteTimeout(), TimeUnit.MILLISECONDS));
               connection.addHandlerLast(new 
ReadTimeoutHandler(properties.getReadTimeout(), TimeUnit.MILLISECONDS));
           });
           if (Objects.nonNull(loopResources)) {
               httpClient.runOn(loopResources);
           }
           HttpClientProperties.Ssl ssl = properties.getSsl();
           if (StringUtils.isNotEmpty(ssl.getKeyStorePath())
                   || 
ArrayUtils.isNotEmpty(ssl.getTrustedX509CertificatesForTrustManager())
                   || ssl.isUseInsecureTrustManager()) {
               httpClient = httpClient.secure(sslContextSpec -> 
setSsl(sslContextSpec, ssl));
           }
           if (properties.isWiretap()) {
               httpClient = httpClient.wiretap(true);
           }
           // set to false, fix java.io.IOException: Connection reset by peer
           // see https://github.com/reactor/reactor-netty/issues/388
           return httpClient.keepAlive(properties.isKeepAlive());
       }
   
   ### Steps To Reproduce
   
   no
   
   ### Environment
   
   ```markdown
   ShenYu version(s):2.6.1
   ```
   
   
   ### Debug logs
   
   no
   
   ### Anything else?
   
   no


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to