93 lines
2.1 KiB
Go

package main
import (
"context"
"github.com/coreos/etcd/clientv3"
"log"
"rocommon/service"
"time"
)
func main() {
/*
log.SetFlags(log.Lshortfile | log.LstdFlags)
conf := clientv3.Config{
Endpoints: []string{"192.168.73.129:2379"},
DialTimeout: 10 * time.Second,
}
cli,err := clientv3.New(conf)
if err != nil {
log.Fatalf("etcd connect err:", err)
}
defer cli.Close()
ctx, _ := context.WithTimeout(context.TODO(), 5 * time.Second)
kv := clientv3.NewKV(cli)
putack, err := kv.Put(ctx, "etcdchy", "helloworld")
if err != nil {
log.Println("kv put err:", err)
}
log.Println("put kv:", putack)
getack,err := kv.Get(ctx, "etcdchy")
if err != nil {
log.Println("kv get err:", err)
}
log.Println("get kv:", getack)
*/
/*
cli,err := clientv3.NewFromURL("http://192.168.73.129:2379")
if err != nil {
log.Fatalln("NewFromURL err:", err)
}
r := &naming.GRPCResolver{Client:cli}
b := grpc.RoundRobin(r)
conn, geer := grpc.Dial("my-service", grpc.WithBalancer(b))
if geer != nil {
log.Fatalln("NewFromURL err:", geer)
}
log.Println("conn:", conn)
*/
conf := clientv3.Config{
Endpoints: []string{"192.168.73.129:2379"},
DialTimeout: 10 * time.Second,
}
cli, err := clientv3.New(conf)
if err != nil {
log.Fatalf("etcd connect err:", err)
}
defer cli.Close()
kv := clientv3.NewKV(cli)
leaseResp, _ := cli.Grant(context.TODO(), 10) //返回 lease相关信息
ctx, _ := context.WithTimeout(context.TODO(), 10*time.Second)
//rsp, err := kv.Put(ctx, "root/game/1-1-1", `{"addr":"127.0.0.1:1111"}`, clientv3.WithLease(leaseResp.ID))
rsp, err := kv.Put(ctx, "rootgame", `{"addr":"127.0.0.1:1111"}`, clientv3.WithLease(leaseResp.ID))
log.Println("rsp:", rsp)
//cli.KeepAlive()
cli.KeepAlive(context.TODO(), leaseResp.ID)
go func() {
for {
select {
case <-time.After(5 * time.Second):
rsp, err := kv.Get(context.TODO(), "rootgame")
if err != nil {
log.Println("kv get err:", err)
} else {
log.Println("kv get data:", rsp.Kvs, rsp.Count)
}
}
}
}()
service.WaitExitSignal()
}