添加service id
This commit is contained in:
parent
aff70d66d8
commit
cd54354df2
21
etcd/etcd.go
21
etcd/etcd.go
@ -24,37 +24,32 @@ func NewRegistry[T INode](endpoints []string, rootKey, username, password string
|
||||
return e, err
|
||||
}
|
||||
|
||||
func (e *Registry[T]) Register(node INode) error {
|
||||
func (r *Registry[T]) Register(node INode) error {
|
||||
bs, err := json.Marshal(node)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return e.etcdRegistryImpl.Register(node.EtcdKey(), string(bs))
|
||||
return r.etcdRegistryImpl.Register(node.EtcdKey(), string(bs))
|
||||
}
|
||||
|
||||
// 获取当前服务
|
||||
func (sr *Registry[T]) saveNode(jsonBytes []byte) {
|
||||
func (r *Registry[T]) saveNode(jsonBytes []byte) {
|
||||
var tmp = resultT[T]{Err: nil}
|
||||
if err := json.Unmarshal(jsonBytes, &tmp.Value); err != nil {
|
||||
log.ErrorF(err.Error())
|
||||
}
|
||||
sr.nodes.Store(tmp.Value.MapKey(), tmp.Value)
|
||||
r.nodes.Store(tmp.Value.MapKey(), tmp.Value)
|
||||
}
|
||||
|
||||
// 获取当前根节点下所有节点信息
|
||||
func (sr *Registry[T]) GetNodes() []T {
|
||||
var nodes []T
|
||||
sr.nodes.Range(func(k, v interface{}) bool {
|
||||
nodes = append(nodes, v.(T))
|
||||
return true
|
||||
})
|
||||
return nodes
|
||||
func (r *Registry[T]) GetNodes() *sync.Map {
|
||||
return &r.nodes
|
||||
}
|
||||
|
||||
// 获取当前根节点下所有节点信息
|
||||
func (sr *Registry[T]) FindNode(key string) (T, error) {
|
||||
func (r *Registry[T]) FindNode(key string) (T, error) {
|
||||
var tmp = resultT[T]{Err: nil}
|
||||
v, ok := sr.nodes.Load(key)
|
||||
v, ok := r.nodes.Load(key)
|
||||
if !ok {
|
||||
return tmp.Value, fmt.Errorf("%v not exist", key)
|
||||
}
|
||||
|
@ -15,6 +15,7 @@ type INode interface {
|
||||
}
|
||||
|
||||
type ServiceNode struct {
|
||||
ServiceId int32 `json:"service_id"` // 服务id 由proto定义,gate通过该字段找到serviceNode
|
||||
Name string `json:"name"` // 服务名 多个同类服务依赖name区分:1,2,3等等
|
||||
Type string `json:"type"` // 服务类型:lobby, game, gate等等
|
||||
Address string `json:"address"` // 地址
|
||||
|
Loading…
x
Reference in New Issue
Block a user