mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-04-24 02:16:16 +08:00
Merge remote-tracking branch 'origin/tuoyun' into tuoyun
This commit is contained in:
commit
a33fe330f7
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user