9
9
package service
10
10
11
11
import (
12
+ "context"
12
13
"github.com/ixre/gof/log"
13
14
"go.etcd.io/etcd/clientv3"
14
15
"go2o/core/etcd"
@@ -18,12 +19,10 @@ import (
18
19
"time"
19
20
)
20
21
21
- //var cfg clientv3.Config
22
22
var selector etcd.Selector
23
23
24
24
// 设置RPC地址
25
25
func ConfigureClient (c clientv3.Config ) {
26
- //cfg = c
27
26
log .Println ("[ Go2o][ RPC]: connecting go2o rpc server..." )
28
27
s , err := etcd .NewSelector (service , c , etcd .AlgRoundRobin )
29
28
if err != nil {
@@ -32,19 +31,15 @@ func ConfigureClient(c clientv3.Config) {
32
31
}
33
32
selector = s
34
33
tryConnect (10 )
35
- log .Println ("[ Go2o][ API]: try times limit" )
36
34
}
37
35
38
36
// 尝试连接服务,如果连接不成功,则退出
39
37
func tryConnect (retryTimes int ) {
40
38
for i := 0 ; i < retryTimes ; i ++ {
41
- log .Println ("try " ,i )
42
39
trans , _ , err := StatusServiceClient ()
43
40
if err == nil {
44
41
trans .Close ()
45
42
break
46
- }else {
47
- log .Println (err .Error ())
48
43
}
49
44
time .Sleep (time .Second )
50
45
if i >= retryTimes - 1 {
@@ -60,8 +55,10 @@ func getConn(selector etcd.Selector) (*grpc.ClientConn, error) {
60
55
if err != nil {
61
56
return nil , err
62
57
}
63
- log .Println ("addr:" ,next .Addr )
64
- return grpc .Dial (next .Addr , grpc .WithInsecure (), grpc .WithBlock ())
58
+ ctx , cancel := context .WithTimeout (context .Background (), time .Second * 5 )
59
+ conn , err := grpc .DialContext (ctx , next .Addr , grpc .WithInsecure (), grpc .WithBlock ())
60
+ cancel ()
61
+ return conn , err
65
62
}
66
63
67
64
// 状态客户端
0 commit comments