286f6dbe
zhangqijia
etcd 保存服务信息
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
package etcd
import (
"context"
"fmt"
"go.etcd.io/etcd/api/v3/mvccpb"
clientv3 "go.etcd.io/etcd/client/v3"
"pro2d/conf"
"pro2d/utils"
"testing"
)
func TestEtcdClient_GetByPrefix(t *testing.T) {
etcd := NewEtcdClient(conf.GlobalConf.Etcd)
gameInfo := etcd.GetByPrefix(conf.GlobalConf.AccountConf.Name)
for k, v := range gameInfo {
utils.Sugar.Debugf("game info key: %v val: %v", k, v)
}
rch := etcd.etcd.Watch(context.Background(), fmt.Sprintf("/%s/", conf.GlobalConf.AccountConf.Name), clientv3.WithPrefix())
go func() {
for wresp := range rch {
for _, ev := range wresp.Events {
switch ev.Type {
case mvccpb.PUT: //修改或者新增
utils.Sugar.Debugf("account put key: %s val: %s", ev.Kv.Key, ev.Kv.Value)
case mvccpb.DELETE: //删除
utils.Sugar.Debugf("account delete key: %s val: %s", ev.Kv.Key, ev.Kv.Value)
}
}
}
}()
game := etcd.etcd.Watch(context.Background(), fmt.Sprintf("/%s/", conf.GlobalConf.GameConf.Name), clientv3.WithPrefix())
for wresp := range game {
for _, ev := range wresp.Events {
switch ev.Type {
case mvccpb.PUT: //修改或者新增
utils.Sugar.Debugf("game put key: %s val: %s", ev.Kv.Key, ev.Kv.Value)
case mvccpb.DELETE: //删除
utils.Sugar.Debugf("game delete key: %s val: %s", ev.Kv.Key, ev.Kv.Value)
}
}
}
}
|