diff --git a/dsms-engine-application/src/main/java/com/dsms/modules/node/service/impl/NodeServiceImpl.java b/dsms-engine-application/src/main/java/com/dsms/modules/node/service/impl/NodeServiceImpl.java index 018a95c166548bfddbc212b1e17fff2b8fa834bb..608c2cbf52e4733a7c586ef4c11498d1680dcb48 100644 --- a/dsms-engine-application/src/main/java/com/dsms/modules/node/service/impl/NodeServiceImpl.java +++ b/dsms-engine-application/src/main/java/com/dsms/modules/node/service/impl/NodeServiceImpl.java @@ -16,6 +16,7 @@ package com.dsms.modules.node.service.impl; +import cn.hutool.core.net.NetUtil; import com.dsms.common.constant.*; import com.dsms.common.exception.DsmsEngineException; import com.dsms.common.remotecall.model.RemoteResponse; @@ -41,7 +42,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; -import java.net.Socket; +import java.net.InetSocketAddress; import java.util.ArrayList; import java.util.List; @@ -88,12 +89,7 @@ public class NodeServiceImpl implements INodeService { //verify node server status String nodeIp = addr.substring(0, addr.indexOf(":")); String nodePort = addr.substring(addr.indexOf(":") + 1, addr.indexOf("/")); - boolean connected; - try (Socket socket = new Socket(nodeIp, Integer.parseInt(nodePort))) { - connected = socket.isConnected(); - } catch (Exception e) { - connected = false; - } + boolean connected = NetUtil.isOpen(new InetSocketAddress(nodeIp, Integer.parseInt(nodePort)), SystemConst.CONNECT_TIMEOUT); node.setNodeIp(nodeIp); node.setNodeStatus(connected ? NodeStatusEnum.UP.getStatus() : NodeStatusEnum.DOWN.getStatus()); //get the number of available and all disks of the node