mirror of
https://github.com/go-kratos/kratos.git
synced 2025-03-17 21:07:54 +02:00
add keepalive for client
This commit is contained in:
parent
c6c25d6e1b
commit
636160ed95
@ -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…
x
Reference in New Issue
Block a user