feat(destination): Add http2 client params to endpoints#331
Conversation
This change updates the Destination API so that its WeightedAddr type, which represents an individual network endpoint, with HTTP/2 client parameters. This enables the control plane to alter keep-alive and flow control settings on a per-endpoint basis.
| google.protobuf.Duration timeout = 2; | ||
|
|
||
| // Whether to send pings when there is no other traffic. | ||
| bool while_idle = 3; |
There was a problem hiding this comment.
what are the semantics of this? if false will pings be send when there IS other traffic? if true will pings ONLY be sent when there is no other traffic?
There was a problem hiding this comment.
From hyper
Sets whether HTTP2 keep-alive should apply while the connection is idle.
If disabled, keep-alive pings are only sent while there are open request/responses streams. If enabled, pings are also sent when no streams are active. Does nothing if keep_alive_interval is disabled.
grpc-go may fail clients that send pings on idle connections.
| FlowControl flow_control = 1; | ||
|
|
||
| // Enables keep-alive timeouts. | ||
| KeepAlive keep_alive = 2; |
There was a problem hiding this comment.
Can keep-alives be disabled entirely? is that what the while_idle field does?
There was a problem hiding this comment.
All fields are optional, so this (and flow control) can be omitted.
| // Configures Hyper internals. | ||
| Internals internals = 3; | ||
|
|
||
| message FlowControl { |
There was a problem hiding this comment.
is the idea that the control plane will always provide these values? or can the control plane leave them unspecified and allow the proxy to use some defaults?
There was a problem hiding this comment.
If the control plane omits them, the proxy will use defaults. I don't have immediate plans to set these values from the control plane.
This change updates the Destination API so that its WeightedAddr type, which represents an individual network endpoint, with HTTP/2 client parameters. This enables the control plane to alter keep-alive and flow control settings on a per-endpoint basis.