From 281b5aea6b85df86b279eb3377ff6851c560bcbd Mon Sep 17 00:00:00 2001 From: Shiwen Cheng Date: Mon, 7 Jun 2021 22:12:49 +0800 Subject: [PATCH] [Fix-5468][Common] Fix obtaining IP is incorrect (#5594) --- .../conf/dolphinscheduler/common.properties.tpl | 3 +++ .../apache/dolphinscheduler/common/Constants.java | 14 +++++++------- .../dolphinscheduler/common/utils/NetUtils.java | 9 ++++----- .../src/main/resources/common.properties | 3 +++ 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/docker/build/conf/dolphinscheduler/common.properties.tpl b/docker/build/conf/dolphinscheduler/common.properties.tpl index ccf25d85b..83776a00a 100644 --- a/docker/build/conf/dolphinscheduler/common.properties.tpl +++ b/docker/build/conf/dolphinscheduler/common.properties.tpl @@ -78,6 +78,9 @@ datasource.encryption.salt=${DATASOURCE_ENCRYPTION_SALT} # use sudo or not, if set true, executing user is tenant user and deploy user needs sudo permissions; if set false, executing user is the deploy user and doesn't need sudo permissions sudo.enable=${SUDO_ENABLE} +# network interface preferred like eth0, default: empty +#dolphin.scheduler.network.interface.preferred= + # network IP gets priority, default: inner outer #dolphin.scheduler.network.priority.strategy=default diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java index 4320bd971..0fac8040a 100644 --- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java +++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java @@ -1029,11 +1029,6 @@ public final class Constants { */ public static final String SYSTEM_LINE_SEPARATOR = System.getProperty("line.separator"); - /** - * net system properties - */ - public static final String DOLPHIN_SCHEDULER_PREFERRED_NETWORK_INTERFACE = "dolphin.scheduler.network.interface.preferred"; - public static final String EXCEL_SUFFIX_XLS = ".xls"; @@ -1045,9 +1040,14 @@ public final class Constants { public static final String DATASOURCE_ENCRYPTION_SALT = "datasource.encryption.salt"; /** - * Network IP gets priority, default inner outer + * network interface preferred + */ + public static final String DOLPHIN_SCHEDULER_NETWORK_INTERFACE_PREFERRED = "dolphin.scheduler.network.interface.preferred"; + + /** + * network IP gets priority, default inner outer */ - public static final String NETWORK_PRIORITY_STRATEGY = "dolphin.scheduler.network.priority.strategy"; + public static final String DOLPHIN_SCHEDULER_NETWORK_PRIORITY_STRATEGY = "dolphin.scheduler.network.priority.strategy"; /** * exec shell scripts diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/NetUtils.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/NetUtils.java index 4f0953f82..926c3ab90 100644 --- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/NetUtils.java +++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/NetUtils.java @@ -17,8 +17,6 @@ package org.apache.dolphinscheduler.common.utils; -import static org.apache.dolphinscheduler.common.Constants.DOLPHIN_SCHEDULER_PREFERRED_NETWORK_INTERFACE; - import static java.util.Collections.emptyList; import org.apache.dolphinscheduler.common.Constants; @@ -130,7 +128,7 @@ public class NetUtils { Optional addressOp = toValidAddress(addresses.nextElement()); if (addressOp.isPresent()) { try { - if (addressOp.get().isReachable(100)) { + if (addressOp.get().isReachable(200)) { LOCAL_ADDRESS = addressOp.get(); return LOCAL_ADDRESS; } @@ -260,7 +258,8 @@ public class NetUtils { } private static boolean isSpecifyNetworkInterface(NetworkInterface networkInterface) { - String preferredNetworkInterface = System.getProperty(DOLPHIN_SCHEDULER_PREFERRED_NETWORK_INTERFACE); + String preferredNetworkInterface = PropertyUtils.getString(Constants.DOLPHIN_SCHEDULER_NETWORK_INTERFACE_PREFERRED, + System.getProperty(Constants.DOLPHIN_SCHEDULER_NETWORK_INTERFACE_PREFERRED)); return Objects.equals(networkInterface.getDisplayName(), preferredNetworkInterface); } @@ -268,7 +267,7 @@ public class NetUtils { if (validNetworkInterfaces.isEmpty()) { return null; } - String networkPriority = PropertyUtils.getString(Constants.NETWORK_PRIORITY_STRATEGY, NETWORK_PRIORITY_DEFAULT); + String networkPriority = PropertyUtils.getString(Constants.DOLPHIN_SCHEDULER_NETWORK_PRIORITY_STRATEGY, NETWORK_PRIORITY_DEFAULT); if (NETWORK_PRIORITY_DEFAULT.equalsIgnoreCase(networkPriority)) { return findAddressByDefaultPolicy(validNetworkInterfaces); } else if (NETWORK_PRIORITY_INNER.equalsIgnoreCase(networkPriority)) { diff --git a/dolphinscheduler-common/src/main/resources/common.properties b/dolphinscheduler-common/src/main/resources/common.properties index 726c799c7..4005a0afa 100644 --- a/dolphinscheduler-common/src/main/resources/common.properties +++ b/dolphinscheduler-common/src/main/resources/common.properties @@ -78,6 +78,9 @@ datasource.encryption.salt=!@#$%^&* # use sudo or not, if set true, executing user is tenant user and deploy user needs sudo permissions; if set false, executing user is the deploy user and doesn't need sudo permissions sudo.enable=true +# network interface preferred like eth0, default: empty +#dolphin.scheduler.network.interface.preferred= + # network IP gets priority, default: inner outer #dolphin.scheduler.network.priority.strategy=default -- GitLab