Skip to content

Commit b670c4c

Browse files
mzitnikmzitnik
andauthored
Change default http client to apache http client (ClickHouse#1439)
* change default http client * change DEFAULT_BUFFER_SIZE to 8192 --------- Co-authored-by: mzitnik <mark.zitnik@clickhouse.com>
1 parent f2ea0e1 commit b670c4c

File tree

4 files changed

+21
-3
lines changed

4 files changed

+21
-3
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
* Adding new proxy support [#1338](https://github.com/ClickHouse/clickhouse-java/issues/1338)
1111
* Add support for customer socket factory [#1391](https://github.com/ClickHouse/clickhouse-java/issues/1391)
1212
* use VarHandle in JDK 9+ to read/write numbers
13+
* Change default HTTP Client to Apache HTTP client [#1421](https://github.com/ClickHouse/clickhouse-java/issues/1421)
1314

1415
### Bug Fixes
1516
* Java client threw confusing error when query is invalid.

clickhouse-data/src/main/java/com/clickhouse/data/ClickHouseDataConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ public boolean isWidenUnsignedTypes() {
134134

135135
static final ClickHouseBufferingMode DEFAULT_BUFFERING_MODE = ClickHouseBufferingMode.RESOURCE_EFFICIENT;
136136

137-
static final int DEFAULT_BUFFER_SIZE = 4096;
137+
static final int DEFAULT_BUFFER_SIZE = 8192;
138138
static final int DEFAULT_READ_BUFFER_SIZE = DEFAULT_BUFFER_SIZE;
139139
static final int DEFAULT_WRITE_BUFFER_SIZE = DEFAULT_BUFFER_SIZE;
140140
static final int DEFAULT_MAX_BUFFER_SIZE = 128 * 1024;

clickhouse-http-client/src/main/java/com/clickhouse/client/http/ApacheHttpConnectionImpl.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
import java.net.HttpURLConnection;
5858
import java.net.InetSocketAddress;
5959
import java.net.Socket;
60+
import java.net.StandardSocketOptions;
6061
import java.nio.charset.StandardCharsets;
6162
import java.util.List;
6263
import java.util.Map;
@@ -380,6 +381,22 @@ public HttpConnectionManager(Registry<ConnectionSocketFactory> socketFactory, Cl
380381
if (config.getProxyType() == ClickHouseProxyType.SOCKS) {
381382
builder.setSocksProxyAddress(new InetSocketAddress(config.getProxyHost(), config.getProxyPort()));
382383
}
384+
if (config.hasOption(ClickHouseClientOption.SOCKET_RCVBUF)) {
385+
int bufferSize = config.getIntOption(ClickHouseClientOption.SOCKET_RCVBUF);
386+
builder.setRcvBufSize(bufferSize > 0 ? bufferSize : config.getReadBufferSize());
387+
} else {
388+
int bufferSize = config.getBufferSize();
389+
int maxQueuedBuffers = config.getMaxQueuedBuffers();
390+
builder.setRcvBufSize(bufferSize * maxQueuedBuffers);
391+
}
392+
if (config.hasOption(ClickHouseClientOption.SOCKET_SNDBUF)) {
393+
int bufferSize = config.getIntOption(ClickHouseClientOption.SOCKET_SNDBUF);
394+
builder.setSndBufSize(bufferSize > 0 ? bufferSize : config.getWriteBufferSize());
395+
} else {
396+
int bufferSize = config.getBufferSize();
397+
int maxQueuedBuffers = config.getMaxQueuedBuffers();
398+
builder.setSndBufSize(bufferSize * maxQueuedBuffers);
399+
}
383400
setDefaultSocketConfig(builder.build());
384401
}
385402
}

clickhouse-http-client/src/main/java/com/clickhouse/client/http/config/ClickHouseHttpOption.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ public enum ClickHouseHttpOption implements ClickHouseOption {
1212
/**
1313
* HTTP connection provider.
1414
*/
15-
CONNECTION_PROVIDER("http_connection_provider", HttpConnectionProvider.HTTP_URL_CONNECTION,
16-
"HTTP connection provider. HTTP_CLIENT is only supported in JDK 11 or above."),
15+
CONNECTION_PROVIDER("http_connection_provider", HttpConnectionProvider.APACHE_HTTP_CLIENT,
16+
"APACHE HTTP CLIENT connection provider. HTTP_CLIENT is only supported in JDK 11 or above."),
1717
/**
1818
* Custom HTTP headers.
1919
*/

0 commit comments

Comments
 (0)