andriygav / GrpcProxy

A simple proxy for gRPC.

Home Page:https://andriygav.github.io/GrpcProxy/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GrpcProxy

Build info Test coverage Docker Hub Version Docs status

Basic information

A simple solution for gRPC proxy with multiple hosts by pick first host to resolving. Currently supports only single packet data transfer (unary_unary grpc type. To remove the unary_unary grpc type restriction, need to switch to golang.).

Usage

For running proxy with default parameters (50 routing connections simultaneously)

docker run -p 9878 -v <path to your configuration yaml file>:/config/setup.yaml andriygav/grpc-proxy:latest

Example of setup file

- service: example.v1.ExampleService
  match:
  - name: somename
    headers:
      someheaderkey:
        exact: someheadervalue
    hosts:
    - address-one:81
    - address-two:80
    loadBalancer:
      type: pick_first
  - name: someothername
    headers:
      someheaderkey:
        exact: someotherheadervalue
    hosts:
    - address-three:1824
    - address-four:18243
    loadBalancer:
      type: random
  hosts:
  - default-adress:1824
  loadBalancer:
    type: pick_first
  • Firstly, need to specify the service for routing discovery (for example we are using example.v1.ExampleService).
  • Secondly, need to specify headers information for specific routing (we are using key: value pairs from header such as someheaderkey and someheadervalue).
  • Thirdly, need to specify hosts for routing and type of use it (now only pick_first and random available).
  • Host must by specify by address and port.

About

A simple proxy for gRPC.

https://andriygav.github.io/GrpcProxy/

License:MIT License


Languages

Language:Python 97.4%Language:Dockerfile 2.6%