add keepalive for client

pull/199/head
longXboy 5 years ago
parent c6c25d6e1b
commit 636160ed95
  1. 4
      pkg/net/rpc/warden/CHANGELOG.md
  2. 33
      pkg/net/rpc/warden/client.go

@ -1,5 +1,9 @@
### net/rpc/warden
##### Version 1.1.19
1. 升级grpc至1.22.0
2. client增加keepAlive选项
##### Version 1.1.18
1. 修复resolver过滤导致的子集bug

@ -34,9 +34,11 @@ var _grpcTarget flagvar.StringVars
var (
_once sync.Once
_defaultCliConf = &ClientConfig{
Dial: xtime.Duration(time.Second * 10),
Timeout: xtime.Duration(time.Millisecond * 250),
Subset: 50,
Dial: xtime.Duration(time.Second * 10),
Timeout: xtime.Duration(time.Millisecond * 250),
Subset: 50,
KeepAliveInterval: xtime.Duration(time.Second * 60),
KeepAliveTimeout: xtime.Duration(time.Second * 20),
}
_defaultClient *Client
)
@ -51,14 +53,17 @@ func baseMetadata() metadata.MD {
// ClientConfig is rpc client conf.
type ClientConfig struct {
Dial xtime.Duration
Timeout xtime.Duration
Breaker *breaker.Config
Method map[string]*ClientConfig
Clusters []string
Zone string
Subset int
NonBlock bool
Dial xtime.Duration
Timeout xtime.Duration
Breaker *breaker.Config
Method map[string]*ClientConfig
Clusters []string
Zone string
Subset int
NonBlock bool
KeepAliveInterval xtime.Duration
KeepAliveTimeout xtime.Duration
KeepAliveWithoutStream bool
}
// Client is the framework's client side instance, it contains the ctx, opt and interceptors.
@ -186,6 +191,12 @@ func (c *Client) SetConfig(conf *ClientConfig) (err error) {
if conf.Subset <= 0 {
conf.Subset = 50
}
if conf.KeepAliveInterval <= 0 {
conf.KeepAliveInterval = xtime.Duration(time.Second * 60)
}
if conf.KeepAliveTimeout <= 0 {
conf.KeepAliveTimeout = xtime.Duration(time.Second * 20)
}
// FIXME(maojian) check Method dial/timeout
c.mutex.Lock()

Loading…
Cancel
Save