| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package service
- import (
- "rocommon"
- "sync"
- )
- type MultiServerNode interface {
- GetNode(serviceId string) rocommon.ServerNode
- //添加服务器节点 tcpConnector成功后的节点
- AddNode(desc *ETCDServiceDesc, node rocommon.ServerNode)
- RemoveNode(serviceId string)
- }
- type netServerNode struct {
- sync.RWMutex
- nodeList map[string]rocommon.ServerNode
- }
- func NewMultiServerNode() *netServerNode {
- m := &netServerNode{}
- m.nodeList = map[string]rocommon.ServerNode{}
- return m
- }
- func (this *netServerNode) GetNode(serviceId string) rocommon.ServerNode {
- this.RLock()
- defer this.RUnlock()
- if node, ok := this.nodeList[serviceId]; ok {
- return node
- }
- return nil
- }
- func (this *netServerNode) RemoveNode(serviceId string) {
- this.Lock()
- defer this.Unlock()
- delete(this.nodeList, serviceId)
- }
- func (this *netServerNode) AddNode(desc *ETCDServiceDesc, node rocommon.ServerNode) {
- this.Lock()
- this.nodeList[desc.ID] = node
- this.Unlock()
- }
|