pancake-proxy

module
v0.0.0-...-73fcc39 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 14, 2024 License: MIT

README

Pancake

Pancake is a smart gRPC reverse proxy or API gateway, allowing many microservices to be exposed as a single server.

Docker Hub

How it works

Pancake automatically discovers gRPC services on different upstream servers using the standard reflection service. When a gRPC request arrives at Pancake, it automatically forwards that request to an upstream server that implements the requested service. If multiple servers implement the same service, load balancing is performed as well.

This functionality makes configuration extremely easy and allows Pancake to basically work "out of the box". A minimal configuration could look something like this:

servers:
    # Simply list all servers in your cluster
    # Pancake will figure out how to route requests by itself
    - address: localhost:5000
    - address: localhost:5001

Reflection and Healthchecks

Obviously, load balancing the Reflection and Health services would cause issues, but Pancake will also take care of that.

Pancake provides it's own reflection service, which will include all the services on the upstream servers. For example, if you have two servers, one implementing ServiceA, the other ServiceB, calling ListServices on Pancake will report ["ServiceA", "ServiceB", ...]

To clients it would look like they're talking to a single server, implementing both services.

gRPC-Web support

Pancake translates and forwards incoming gRPC-Web requests (Content-Type: grpc-web*) to the upstream servers. This feature is enabled by default and is usable using the default configuration, although CORS will need to configured to accept requests from browsers.

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL