Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/teivah/tourniquet
gRPC client-side load balancer
https://github.com/teivah/tourniquet
go golang grpc grpc-go
Last synced: 2 months ago
JSON representation
gRPC client-side load balancer
- Host: GitHub
- URL: https://github.com/teivah/tourniquet
- Owner: teivah
- License: apache-2.0
- Created: 2020-05-02T00:26:42.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2020-05-04T17:31:50.000Z (almost 5 years ago)
- Last Synced: 2024-11-21T00:50:29.686Z (2 months ago)
- Topics: go, golang, grpc, grpc-go
- Language: Go
- Homepage:
- Size: 21.5 KB
- Stars: 8
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Tourniquet
gRPC load-balancing on Kubernetes can be painful: https://kubernetes.io/blog/2018/11/07/grpc-load-balancing-on-kubernetes-without-tears/
Instead of having to rely on a service-mesh, a cheap alternative is to manage **client-side load balancing**.
In Kubernetes, we have to configure a Service on top of a Pod. Then, with Tourniquet we can create a pool of gRPC connections and a max TTL. Each connection created is associated to the TTL specified. Once the TTL is reached, the stale connection will be closed and recreated. It allows querying again the service and potentially _discover_ new replica instances.
Tourniquet is a cheap and race-safe solution to handle gRPC load balancing on Kubernetes.
More info:
* [Documentation](https://pkg.go.dev/github.com/teivah/tourniquet)
* [Example](examples/examples.go)