Merge remote-tracking branch 'origin/tuoyun' into tuoyun

This commit is contained in:
Gordon 2022-02-28 17:03:41 +08:00
commit a33fe330f7
2 changed files with 17 additions and 14 deletions

View File

@ -1,6 +1,7 @@
package getcdv3 package getcdv3
import ( import (
"Open_IM/pkg/common/log"
"context" "context"
"fmt" "fmt"
"go.etcd.io/etcd/clientv3" "go.etcd.io/etcd/clientv3"
@ -39,9 +40,9 @@ func RegisterEtcd4Unique(schema, etcdAddr, myHost string, myPort int, serviceNam
func RegisterEtcd(schema, etcdAddr, myHost string, myPort int, serviceName string, ttl int) error { func RegisterEtcd(schema, etcdAddr, myHost string, myPort int, serviceName string, ttl int) error {
cli, err := clientv3.New(clientv3.Config{ cli, err := clientv3.New(clientv3.Config{
Endpoints: strings.Split(etcdAddr, ","), DialTimeout: 5 * time.Second}) Endpoints: strings.Split(etcdAddr, ","), DialTimeout: 5 * time.Second})
fmt.Println("RegisterEtcd")
log.Info("", "RegisterEtcd, ", schema, etcdAddr, myHost, myPort, serviceName, ttl)
if err != nil { if err != nil {
// return fmt.Errorf("grpclb: create clientv3 client failed: %v", err)
return fmt.Errorf("create etcd clientv3 client failed, errmsg:%v, etcd addr:%s", err, etcdAddr) return fmt.Errorf("create etcd clientv3 client failed, errmsg:%v, etcd addr:%s", err, etcdAddr)
} }
@ -66,15 +67,16 @@ func RegisterEtcd(schema, etcdAddr, myHost string, myPort int, serviceName strin
if err != nil { if err != nil {
return fmt.Errorf("keepalive failed, errmsg:%v, lease id:%d", err, resp.ID) return fmt.Errorf("keepalive failed, errmsg:%v, lease id:%d", err, resp.ID)
} }
fmt.Println("RegisterEtcd ok") log.Info("", "RegisterEtcd ok ")
go func() { go func() {
for { for {
select { select {
case v, ok := <-kresp: case v, ok := <-kresp:
if ok == true { if ok == true {
// fmt.Println(" kresp ok ", v) log.Debug("", "KeepAlive kresp ok", v, schema, etcdAddr, myHost, myPort, serviceName, ttl)
} else { } else {
fmt.Println(" kresp failed ", v) log.Error("", "KeepAlive kresp failed", schema, etcdAddr, myHost, myPort, serviceName, ttl)
} }
} }
} }

View File

@ -1,6 +1,7 @@
package getcdv3 package getcdv3
import ( import (
"Open_IM/pkg/common/log"
"context" "context"
"fmt" "fmt"
"go.etcd.io/etcd/clientv3" "go.etcd.io/etcd/clientv3"
@ -102,7 +103,7 @@ func (r *Resolver) Build(target resolver.Target, cc resolver.ClientConn, opts re
if err == nil { if err == nil {
var addrList []resolver.Address var addrList []resolver.Address
for i := range resp.Kvs { for i := range resp.Kvs {
fmt.Println("init addr: ", string(resp.Kvs[i].Value)) log.Debug("", "init addr: ", string(resp.Kvs[i].Value))
addrList = append(addrList, resolver.Address{Addr: string(resp.Kvs[i].Value)}) addrList = append(addrList, resolver.Address{Addr: string(resp.Kvs[i].Value)})
} }
r.cc.UpdateState(resolver.State{Addresses: addrList}) r.cc.UpdateState(resolver.State{Addresses: addrList})
@ -148,27 +149,27 @@ func (r *Resolver) watch(prefix string, addrList []resolver.Address) {
if !exists(addrList, string(ev.Kv.Value)) { if !exists(addrList, string(ev.Kv.Value)) {
flag = 1 flag = 1
addrList = append(addrList, resolver.Address{Addr: string(ev.Kv.Value)}) addrList = append(addrList, resolver.Address{Addr: string(ev.Kv.Value)})
fmt.Println("after add, new list: ", addrList) log.Debug("", "after add, new list: ", addrList)
} }
case mvccpb.DELETE: case mvccpb.DELETE:
fmt.Println("remove addr key: ", string(ev.Kv.Key), "value:", string(ev.Kv.Value)) log.Debug("remove addr key: ", string(ev.Kv.Key), "value:", string(ev.Kv.Value))
i := strings.LastIndexAny(string(ev.Kv.Key), "/") i := strings.LastIndexAny(string(ev.Kv.Key), "/")
if i < 0 { if i < 0 {
return return
} }
t := string(ev.Kv.Key)[i+1:] t := string(ev.Kv.Key)[i+1:]
fmt.Println("remove addr key: ", string(ev.Kv.Key), "value:", string(ev.Kv.Value), "addr:", t) log.Debug("remove addr key: ", string(ev.Kv.Key), "value:", string(ev.Kv.Value), "addr:", t)
if s, ok := remove(addrList, t); ok { if s, ok := remove(addrList, t); ok {
flag = 1 flag = 1
addrList = s addrList = s
fmt.Println("after remove, new list: ", addrList) log.Debug("after remove, new list: ", addrList)
} }
} }
} }
if flag == 1 { if flag == 1 {
r.cc.UpdateState(resolver.State{Addresses: addrList}) r.cc.UpdateState(resolver.State{Addresses: addrList})
fmt.Println("update: ", addrList) log.Debug("update: ", addrList)
} }
} }
} }
@ -176,7 +177,7 @@ func (r *Resolver) watch(prefix string, addrList []resolver.Address) {
func GetConn4Unique(schema, etcdaddr, servicename string) []*grpc.ClientConn { func GetConn4Unique(schema, etcdaddr, servicename string) []*grpc.ClientConn {
gEtcdCli, err := clientv3.New(clientv3.Config{Endpoints: strings.Split(etcdaddr, ",")}) gEtcdCli, err := clientv3.New(clientv3.Config{Endpoints: strings.Split(etcdaddr, ",")})
if err != nil { if err != nil {
fmt.Println("eeeeeeeeeeeee", err.Error()) log.Error("clientv3.New failed", err.Error())
return nil return nil
} }
@ -200,7 +201,7 @@ func GetConn4Unique(schema, etcdaddr, servicename string) []*grpc.ClientConn {
} }
} else { } else {
gEtcdCli.Close() gEtcdCli.Close()
fmt.Println("rrrrrrrrrrr", err.Error()) log.Error("gEtcdCli.Get failed", err.Error())
return nil return nil
} }
gEtcdCli.Close() gEtcdCli.Close()
@ -236,7 +237,7 @@ func GetConnPool(schema, etcdaddr, servicename string) (*ClientConn, error) {
ctx, _ := context.WithDeadline(context.Background(), time.Now().Add(1000*time.Millisecond)) ctx, _ := context.WithDeadline(context.Background(), time.Now().Add(1000*time.Millisecond))
c, err := p.Get(ctx) c, err := p.Get(ctx)
fmt.Println(err) log.Info("", "Get ", err)
return c, err return c, err
} }