fox/etcd/inode.go
2025-05-25 23:13:59 +08:00

55 lines
1.4 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package etcd
import "fmt"
const (
rootKeyServices = "services"
rootKeyTopic = "topic"
)
type INode interface {
// 注册到etcd的key
EtcdKey() string
EtcdRootKey() string
MapKey() string
}
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"` // 地址
Port int `json:"port"` // 端口
Version string `json:"version"` // 版本号
ServiceType ServiceType `json:"service_type"` // 服务类型
}
func (s ServiceNode) EtcdKey() string {
return fmt.Sprintf("/%s/%s/%s", rootKeyServices, s.Type, s.Name)
}
func (s ServiceNode) EtcdRootKey() string {
return rootKeyServices
}
func (s ServiceNode) MapKey() string {
return fmt.Sprintf("%s-%s", s.Type, s.Name)
}
type TopicNode struct {
Name string `json:"name"` // topic名
Creator string `json:"creator"` // topic创建者
}
func (s TopicNode) EtcdKey() string {
return fmt.Sprintf("/%s/%s/%s", rootKeyTopic, s.Creator, s.Name)
}
func (s TopicNode) EtcdRootKey() string {
return rootKeyTopic
}
func (s TopicNode) MapKey() string {
return fmt.Sprintf("%s", s.Name)
}