mirror of
https://github.com/duanhf2012/origin.git
synced 2026-02-04 06:54:45 +08:00
1.支持动态服务发现功能
2.Service中支持对RPC结点连接或断开事件监听
This commit is contained in:
@@ -1,29 +1,19 @@
|
||||
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{
|
||||
func (discovery *ConfigDiscovery) InitDiscovery(localNodeId int,funDelNode FunDelNode,funSetNodeInfo FunSetNodeInfo) error{
|
||||
discovery.localNodeId = localNodeId
|
||||
discovery.funDelService = funDelNode
|
||||
discovery.funSetService = funSetNodeInfo
|
||||
|
||||
//解析本地其他服务配置
|
||||
nodeInfoList,err := GetCluster().readLocalClusterConfig(0)
|
||||
_,nodeInfoList,err := GetCluster().readLocalClusterConfig(0)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -32,8 +22,7 @@ func (discovery *ConfigDiscovery) Init(localNodeId int) error{
|
||||
if nodeInfo.NodeId == localNodeId {
|
||||
continue
|
||||
}
|
||||
//去除私有服务
|
||||
discovery.privateService(&nodeInfo)
|
||||
|
||||
discovery.funSetService(&nodeInfo)
|
||||
}
|
||||
|
||||
@@ -43,10 +32,3 @@ func (discovery *ConfigDiscovery) Init(localNodeId int) error{
|
||||
func (discovery *ConfigDiscovery) OnNodeStop(){
|
||||
}
|
||||
|
||||
func (discovery *ConfigDiscovery) RegFunDelNode(funDelNode FunDelNode){
|
||||
discovery.funDelService = funDelNode
|
||||
}
|
||||
|
||||
func (discovery *ConfigDiscovery) RegFunSetNode(funSetNodeInfo FunSetNodeInfo){
|
||||
discovery.funSetService = funSetNodeInfo
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user