Files
origin/cluster/configdiscovery.go

53 lines
1.1 KiB
Go

package cluster
import "strings"
type ConfigDiscovery struct {
funDelService FunDelNode
funSetService FunSetNodeInfo
localNodeId int
}
func (discovery *ConfigDiscovery) privateService(nodeInfo *NodeInfo){
var serviceList []string
for _,s := range nodeInfo.ServiceList {
if strings.HasPrefix(s,"_") {
continue
}
serviceList = append(serviceList,s)
}
nodeInfo.ServiceList = serviceList
}
func (discovery *ConfigDiscovery) Init(localNodeId int) error{
discovery.localNodeId = localNodeId
//解析本地其他服务配置
nodeInfoList,err := GetCluster().readLocalClusterConfig(0)
if err != nil {
return err
}
for _,nodeInfo := range nodeInfoList {
if nodeInfo.NodeId == localNodeId {
continue
}
//去除私有服务
discovery.privateService(&nodeInfo)
discovery.funSetService(&nodeInfo)
}
return nil
}
func (discovery *ConfigDiscovery) OnNodeStop(){
}
func (discovery *ConfigDiscovery) RegFunDelNode(funDelNode FunDelNode){
discovery.funDelService = funDelNode
}
func (discovery *ConfigDiscovery) RegFunSetNode(funSetNodeInfo FunSetNodeInfo){
discovery.funSetService = funSetNodeInfo
}