moremind commented on code in PR #3438:
URL: https://github.com/apache/incubator-shenyu/pull/3438#discussion_r884804205
##########
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-httpclient/src/main/java/org/apache/shenyu/springboot/starter/plugin/httpclient/HttpClientPluginConfiguration.java:
##########
@@ -128,50 +134,75 @@ public HttpClient httpClient(final HttpClientProperties
properties,
}
private void setSsl(final SslProvider.SslContextSpec sslContextSpec, final
HttpClientProperties.Ssl ssl) {
- SslContextBuilder sslContextBuilder = SslContextBuilder.forClient();
- X509Certificate[] trustedX509Certificates =
ssl.getTrustedX509CertificatesForTrustManager();
- if (ArrayUtils.isNotEmpty(trustedX509Certificates)) {
- sslContextBuilder.trustManager(trustedX509Certificates);
- } else if (ssl.isUseInsecureTrustManager()) {
-
sslContextBuilder.trustManager(InsecureTrustManagerFactory.INSTANCE);
- }
- sslContextBuilder.keyManager(ssl.getKeyManagerFactory());
- sslContextSpec.sslContext(sslContextBuilder)
- .defaultConfiguration(ssl.getDefaultConfigurationType())
+ SslProvider.ProtocolSslContextSpec spec =
DefaultSslContextSpec.forClient()
+ .configure(sslContextBuilder -> {
+ X509Certificate[] trustedX509Certificates =
ssl.getTrustedX509CertificatesForTrustManager();
+ if (ArrayUtils.isNotEmpty(trustedX509Certificates)) {
+
sslContextBuilder.trustManager(trustedX509Certificates);
+ } else if (ssl.isUseInsecureTrustManager()) {
+
sslContextBuilder.trustManager(InsecureTrustManagerFactory.INSTANCE);
+ }
+ sslContextBuilder.keyManager(ssl.getKeyManagerFactory());
+
sslContextBuilder.sslProvider(ssl.getDefaultConfigurationType());
+ });
+ sslContextSpec.sslContext(spec)
.handshakeTimeout(ssl.getHandshakeTimeout())
.closeNotifyFlushTimeout(ssl.getCloseNotifyFlushTimeout())
.closeNotifyReadTimeout(ssl.getCloseNotifyReadTimeout());
}
- private TcpClient setTcpClientProxy(final TcpClient tcpClient, final
HttpClientProperties.Proxy proxy) {
- return tcpClient.proxy(proxySpec -> {
- ProxyProvider.Builder builder = proxySpec
- .type(ProxyProvider.Proxy.HTTP)
- .host(proxy.getHost());
- PropertyMapper map = PropertyMapper.get();
- map.from(proxy::getPort).whenNonNull().to(builder::port);
- map.from(proxy::getUsername).whenHasText()
- .to(builder::username);
- map.from(proxy::getPassword).whenHasText()
- .to(password -> builder.password(s -> password));
- map.from(proxy::getNonProxyHostsPattern).whenHasText()
- .to(builder::nonProxyHosts);
- });
- }
-
private ConnectionProvider buildConnectionProvider(final
HttpClientProperties.Pool pool) {
ConnectionProvider connectionProvider;
if (pool.getType() == HttpClientProperties.Pool.PoolType.DISABLED) {
connectionProvider = ConnectionProvider.newConnection();
} else if (pool.getType() == HttpClientProperties.Pool.PoolType.FIXED)
{
- connectionProvider = ConnectionProvider.fixed(pool.getName(),
- pool.getMaxConnections(), pool.getAcquireTimeout(),
pool.getMaxIdleTime());
+ // TODO moremind add fixed connection pool
+ // reactor remove fixed pool from 0.9.4
+ // reason: https://github.com/reactor/reactor-netty/issues/1499
and https://github.com/reactor/reactor-netty/issues/1960
+ connectionProvider = buildFixedConnectionPool(pool.getName(),
pool.getMaxConnections(), pool.getAcquireTimeout(), pool.getMaxIdleTime());
} else {
- connectionProvider = ConnectionProvider.elastic(pool.getName(),
pool.getMaxIdleTime());
+ // TODO moremind add elastic connection pool
+ // reactor remove elastic pool from 0.9.4
+ // reason: https://github.com/reactor/reactor-netty/issues/1499
and https://github.com/reactor/reactor-netty/issues/1960
+ connectionProvider = buildFixedConnectionPool(pool.getName(),
pool.getMaxConnections(), pool.getAcquireTimeout(), pool.getMaxIdleTime());
Review Comment:
please attention.fix and elastic connection pool need optimize in next
released reactor-netty version.now, just support fixed connection pool.
--
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]