-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: add gRPC keepalive server parameters (#52)
# Reason Due to the nature of HTTP/2 of keeping persistent connections, the usage of the default gRPC Keepalive parameters may become a problem when dealing with k8s autoscaling. The possibility of setting up [`MAX_CONNECTION_AGE`](https://grpc.io/docs/guides/keepalive/#keepalive-configuration-specification) server parameter also enables others client capabilities, such as gRPC client load balancing ([1](https://grpc.io/blog/grpc-load-balancing/), [2](https://github.com/grpc/grpc/blob/master/doc/load-balancing.md)) (without service mesh, such as [Istio](https://istio.io/)). # Description This PR proposes the addition of configurable [gRPC server Keepalive parameters](https://grpc.io/docs/guides/keepalive/#keepalive-configuration-specification). As the environment variables and `keepalive.ServerParameters` struct fields are optional, Deckard's previous behavior will remain the same. ## References - [gRPC load balancing](https://grpc.io/blog/grpc-load-balancing/) - Default keepalive values: [1](https://github.com/grpc/grpc-go/blob/master/internal/transport/http2_server.go#L214-L236), [2](https://github.com/grpc/grpc-go/blob/master/internal/transport/defaults.go) - [Lessons learned from running a large gRPC mesh at Datadog](https://www.datadoghq.com/blog/grpc-at-datadog/)
- Loading branch information
1 parent
5a2182c
commit f74fb3f
Showing
10 changed files
with
252 additions
and
37 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.