GrpcProxy¶
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.