Skip to content

andriygav/GrpcProxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.