mirror of
https://gitee.com/dolphinscheduler/DolphinScheduler.git
synced 2024-12-03 20:58:11 +08:00
[Feature-2574][Server]Specify Network Interface (#3186)
* [Feature-2574][Server]Specify Network Interface This closes #2574 * code smell * code smell * move DOLPHIN_SCHEDULER_PREFERRED_NETWORK_INTERFACE to Constants.java
This commit is contained in:
parent
6c9ac84f73
commit
6f9970b189
@ -978,5 +978,10 @@ public final class Constants {
|
||||
public static final int NORAML_NODE_STATUS = 0;
|
||||
public static final int ABNORMAL_NODE_STATUS = 1;
|
||||
|
||||
/**
|
||||
* net system properties
|
||||
*/
|
||||
public static final String DOLPHIN_SCHEDULER_PREFERRED_NETWORK_INTERFACE = "dolphin.scheduler.network.interface.preferred";
|
||||
|
||||
|
||||
}
|
||||
|
@ -21,13 +21,11 @@ import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.*;
|
||||
import java.util.Enumeration;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.*;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import static java.util.Collections.emptyList;
|
||||
import static org.apache.dolphinscheduler.common.Constants.DOLPHIN_SCHEDULER_PREFERRED_NETWORK_INTERFACE;
|
||||
|
||||
/**
|
||||
* NetUtils
|
||||
@ -171,9 +169,19 @@ public class NetUtils {
|
||||
logger.warn("ValidNetworkInterfaces exception", e);
|
||||
}
|
||||
|
||||
NetworkInterface result = null;
|
||||
// Try to specify config NetWork Interface
|
||||
for (NetworkInterface networkInterface : validNetworkInterfaces) {
|
||||
if (isSpecifyNetworkInterface(networkInterface)) {
|
||||
result = networkInterface;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (null != result) {
|
||||
return result;
|
||||
}
|
||||
return validNetworkInterfaces.get(0);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -206,4 +214,8 @@ public class NetUtils {
|
||||
|| !networkInterface.isUp();
|
||||
}
|
||||
|
||||
private static boolean isSpecifyNetworkInterface(NetworkInterface networkInterface) {
|
||||
String preferredNetworkInterface = System.getProperty(DOLPHIN_SCHEDULER_PREFERRED_NETWORK_INTERFACE);
|
||||
return Objects.equals(networkInterface.getDisplayName(), preferredNetworkInterface);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user