gRPC KeepAlive
keep-alive settings
Here are some good settings for an initial configuration of a SpringBoot FactCast client/server setup in case you ran into gRPC related client server communication troubles.
-
Sending keep-alive HTTP/2 PINGs on the connection is useful in case you are running on infrastructure that doesn’t support configurable idle timeouts, and therefore closes connections.
-
The proposed values are defining a scenario where the client sends keep-alive HTTP/2 PINGs every 300s and the server accepts this behavior without sending
GO_AWAY ENHANCE_YOUR_CALMto the client. Please adapt to your specific needs.
Client side
| Property | Description | Recommended | Default |
|---|---|---|---|
|
The default delay before sending keepAlives. Please note that shorter intervals increase the network burden for the server. |
300 |
60 |
|
Configures whether keepAlive will be performed when there are no outstanding RPCs on a connection. |
true |
false |
Further details can be found here : org.springframework.grpc.autoconfigure.client.GrpcClientProperties.
Server side
| Property | Description | Recommended | Default |
|---|---|---|---|
|
Configures whether clients are allowed to send keep-alive HTTP/2 PINGs even if there are no outstanding RPCs on the connection. |
true |
false |
|
Specifies the most aggressive keep-alive time in seconds clients are permitted to configure. |
100 |
300 |
Further details can be found here : org.springframework.grpc.autoconfigure.server.GrpcServerProperties.