summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhoujinchuan <[email protected]>2024-07-16 10:44:36 +0800
committerhoujinchuan <[email protected]>2024-07-16 10:44:36 +0800
commitda7fecc4c10015dff0f4008b8a442302648ed8d8 (patch)
treeaa00c0287fe32e2283ea5d64b3a0b3e52526f54f
parent44c98071288485c902f3969ec99eaab2061283e0 (diff)
修复hos挂掉一台后,http sink仍往挂掉hos写数据的问题v1.3.4
-rw-r--r--pom.xml2
-rw-r--r--src/main/java/com/zdjizhi/sink/HosSink.java10
-rw-r--r--src/main/resources/common.properties4
3 files changed, 8 insertions, 8 deletions
diff --git a/pom.xml b/pom.xml
index 7f0ec34..227be72 100644
--- a/pom.xml
+++ b/pom.xml
@@ -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