diff --git a/README.md b/README.md index fecbba2..3ef3448 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,7 @@ cluster.json如下: "NodeList":[ { "NodeId": 1, + "Private": false, "ListenAddr":"127.0.0.1:8001", "NodeName": "Node_Test1", "remark":"//以_打头的,表示只在本机进程,不对整个子网开发", @@ -59,6 +60,7 @@ cluster.json如下: }, { "NodeId": 2, + "Private": false, "ListenAddr":"127.0.0.1:8002", "NodeName": "Node_Test1", "remark":"//以_打头的,表示只在本机进程,不对整个子网开发", @@ -69,6 +71,7 @@ cluster.json如下: --------------- 以上配置了两个结点服务器程序: * NodeId: 表示origin程序的结点Id标识,不允许重复。 +* Private: 是否私有结点,如果为true,表示其他结点不会发现它,但可以自我运行。 * ListenAddr:Rpc通信服务的监听地址 * NodeName:结点名称 * remark:备注,可选项 @@ -257,6 +260,7 @@ func main(){ "NodeList":[ { "NodeId": 1, + "Private": false, "ListenAddr":"127.0.0.1:8001", "NodeName": "Node_Test1", "remark":"//以_打头的,表示只在本机进程,不对整个子网开发", diff --git a/cluster/cluster.go b/cluster/cluster.go index 85e3e06..6c5da83 100644 --- a/cluster/cluster.go +++ b/cluster/cluster.go @@ -14,6 +14,7 @@ var configDir = "./config/" type NodeInfo struct { NodeId int NodeName string + Private bool ListenAddr string ServiceList []string } @@ -81,7 +82,7 @@ func (cls *Cluster) delServiceNode(serviceName string,nodeId int){ } func (cls *Cluster) serviceDiscoverySetNodeInfo (nodeInfo *NodeInfo){ - if nodeInfo.NodeId == cls.localNodeInfo.NodeId { + if nodeInfo.NodeId == cls.localNodeInfo.NodeId || len(nodeInfo.ServiceList)==0 || nodeInfo.Private == true { return }