mirror of
https://github.com/duanhf2012/origin.git
synced 2026-02-04 06:54:45 +08:00
53 lines
1.1 KiB
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
|
|
}
|