feat 初次提交
This commit is contained in:
42
discover/common/define.go
Normal file
42
discover/common/define.go
Normal file
@@ -0,0 +1,42 @@
|
||||
package common
|
||||
|
||||
type ListenerType int
|
||||
|
||||
const (
|
||||
ListenerTypeNewServer = 1 // 服务启动
|
||||
ListenerTypeCloseServer = 2 // 服务关闭
|
||||
ListenerTypeNewInstance = 3 // 副本启动
|
||||
ListenerTypeCloseInstance = 4 // 副本关闭
|
||||
)
|
||||
|
||||
var (
|
||||
KeyDiscover = "xh-discover"
|
||||
KeyDiscoverService = KeyDiscover + "/service"
|
||||
KeyDiscoverInstance = KeyDiscover + "/instance"
|
||||
)
|
||||
|
||||
var (
|
||||
KeyDiscoverServiceNameGateway = "gateway" // 网关服
|
||||
KeyDiscoverServiceNameScene = "scene" // 场景服
|
||||
KeyDiscoverServiceNameUser = "user" // 用户中心
|
||||
)
|
||||
|
||||
var (
|
||||
KeyDiscoverGateway = KeyDiscoverService + "/" + KeyDiscoverServiceNameGateway // 网关服
|
||||
KeyDiscoverScene = KeyDiscoverService + "/" + KeyDiscoverServiceNameScene // 场景服
|
||||
KeyDiscoverUser = KeyDiscoverService + "/" + KeyDiscoverServiceNameUser // 用户中心
|
||||
)
|
||||
|
||||
// ServiceProvider 服务提供者
|
||||
type ServiceProvider struct {
|
||||
Target string
|
||||
SID int64
|
||||
Addr string
|
||||
}
|
||||
|
||||
// InstanceProvider 副本提供者
|
||||
type InstanceProvider struct {
|
||||
InstanceID int // 副本ID
|
||||
UniqueNo int64 // 副本唯一编号
|
||||
SID string
|
||||
}
|
||||
25
discover/common/tool.go
Normal file
25
discover/common/tool.go
Normal file
@@ -0,0 +1,25 @@
|
||||
package common
|
||||
|
||||
import (
|
||||
"common/db/etcd"
|
||||
"common/log"
|
||||
clientv3 "go.etcd.io/etcd/client/v3"
|
||||
)
|
||||
|
||||
// NewLeaseAndKeepAlive 创建租约并保活
|
||||
func NewLeaseAndKeepAlive(ttl int64) (clientv3.LeaseID, error) {
|
||||
lease, err := etcd.GetClient().Grant(ttl)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
chKeepAlive, err := etcd.GetClient().KeepAlive(lease.ID)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
go func(leaseID clientv3.LeaseID) {
|
||||
for range chKeepAlive {
|
||||
}
|
||||
log.Warnf("Lease %x expired or revoked", leaseID)
|
||||
}(lease.ID)
|
||||
return lease.ID, nil
|
||||
}
|
||||
Reference in New Issue
Block a user