Przeglądaj źródła

[Fix-5468][Common] Fix obtaining IP is incorrect (#5594)

Shiwen Cheng 3 lat temu
rodzic
commit
281b5aea6b

+ 3 - 0
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
 

+ 7 - 7
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

+ 4 - 5
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<InetAddress> 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)) {

+ 3 - 0
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