diff options
| author | houjinchuan <[email protected]> | 2024-07-16 10:44:36 +0800 |
|---|---|---|
| committer | houjinchuan <[email protected]> | 2024-07-16 10:44:36 +0800 |
| commit | da7fecc4c10015dff0f4008b8a442302648ed8d8 (patch) | |
| tree | aa00c0287fe32e2283ea5d64b3a0b3e52526f54f | |
| parent | 44c98071288485c902f3969ec99eaab2061283e0 (diff) | |
修复hos挂掉一台后,http sink仍往挂掉hos写数据的问题v1.3.4
| -rw-r--r-- | pom.xml | 2 | ||||
| -rw-r--r-- | src/main/java/com/zdjizhi/sink/HosSink.java | 10 | ||||
| -rw-r--r-- | src/main/resources/common.properties | 4 |
3 files changed, 8 insertions, 8 deletions
@@ -6,7 +6,7 @@ <groupId>com.zdjizhi</groupId> <artifactId>file-chunk-combiner</artifactId> - <version>1.3.3</version> + <version>1.3.4</version> <repositories> <repository> diff --git a/src/main/java/com/zdjizhi/sink/HosSink.java b/src/main/java/com/zdjizhi/sink/HosSink.java index dbdff68..06a18a3 100644 --- a/src/main/java/com/zdjizhi/sink/HosSink.java +++ b/src/main/java/com/zdjizhi/sink/HosSink.java @@ -20,8 +20,6 @@ import org.apache.http.HttpResponse; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPut; import org.apache.http.concurrent.FutureCallback; -import org.apache.http.conn.ConnectTimeoutException; -import org.apache.http.conn.HttpHostConnectException; import org.apache.http.entity.ByteArrayEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.nio.client.CloseableHttpAsyncClient; @@ -29,7 +27,9 @@ import org.apache.http.nio.reactor.IOReactorException; import org.apache.http.util.EntityUtils; import java.io.IOException; -import java.net.ConnectException; +import java.io.InterruptedIOException; +import java.net.SocketException; +import java.net.UnknownHostException; import java.util.*; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; @@ -355,7 +355,7 @@ public class HosSink extends RichSinkFunction<FileChunk> { if (ex instanceof IllegalStateException || ex instanceof IOReactorException) { throw new RuntimeException(ex); } - if (loadBalanceMode == 1 && ex instanceof ConnectException) { + if (loadBalanceMode == 1 && (ex instanceof SocketException || ex instanceof InterruptedIOException || ex instanceof UnknownHostException)) { endpoint = endpointList.get(RandomUtil.randomInt(endpointList.size())); bathPutUrl = URLUtil.normalize(endpoint + "/hos/" + configuration.get(Configs.SINK_HOS_BUCKET) + "/" + PublicUtil.getUUID()) + "?multiFile"; } @@ -378,7 +378,7 @@ public class HosSink extends RichSinkFunction<FileChunk> { } catch (IOException e) { LOG.error("put part to hos error. url: "+ httpPut.getURI().toString(), e); errorChunksCounter.inc(); - if (loadBalanceMode == 1 && (e instanceof HttpHostConnectException || e instanceof ConnectTimeoutException)) { + if (loadBalanceMode == 1 && (e instanceof SocketException || e instanceof InterruptedIOException || e instanceof UnknownHostException)) { endpoint = endpointList.get(RandomUtil.randomInt(endpointList.size())); } } finally { diff --git a/src/main/resources/common.properties b/src/main/resources/common.properties index cf989b9..0bf92f8 100644 --- a/src/main/resources/common.properties +++ b/src/main/resources/common.properties @@ -48,8 +48,8 @@ sink.hos.token=c21f969b5f03d33d43e04f8f136e7682 #http相关配置 sink.http.client.retries.number=3 -sink.http.client.max.total=100 -sink.http.client.max.per.route=100 +sink.http.client.max.total=20 +sink.http.client.max.per.route=10 sink.http.client.connect.timeout.ms=10000 sink.http.client.request.timeout.ms=10000 sink.http.client.socket.timeout.ms=60000 |
