diff --git a/pom.xml b/pom.xml index 7f0ec34..227be72 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.zdjizhi file-chunk-combiner - 1.3.3 + 1.3.4 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 { 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 { } 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