GRPC
- GRPC의 기본이나 개념은 모두 알고 있다는 가정하에 코드로 직접 GRPC를 구현해보고 테스트 해봄
- GRPC 활용 및 사용 방법 등에 대한 샘플은 grpc-go 에 잘되어 있음
- 아래 프로젝트는 직접 echo, stream 전송 흐름에 대한 프로젝트를 구현해보고 물리적으로 구분된 두개의 머신에서 테스트를 진행해보기 위한 프로젝트
이하 전문은 모두 레포지토리에..
simple throughput check on real machine using grpc
usage
- git clone https://github.com/ppzxc/go-grpc-example
- cd go-grpc-examples
- make all
- echo
server side
- ./echo_server -port 9990
client side
- ./echo_client -ip 192.168.0.65 -port 9990 -len 512 -conn 1 -worker 1
- client Stream
server side
- ./clientStream_server -port 9990
client side
- ./clientStream_client -ip 192.168.0.65 -port 9990 -len 512 -conn 1 -worker 1 -count 10000
- server Stream
server side
- ./serverStream_server -port 9990 -count 1000 -len 512
client side
- ./serverStream_client -ip 192.168.0.65 -port 9990 -conn 1 -worker 1
- bidirectional Stream
server side
- ./biStream_server -port 9990
client side
- ./biStream_client -ip 192.168.0.65 -port 9990 -len 512 -conn 1 -worker 1
flags
message Request {
uint64 uid = 1;
bytes message = 2;
int32 len = 3;
int32 connNumber = 4;
int32 workerNumber = 5;
}
- ip
- port
- len => protobuf bytes message size
- conn => connection count
- worker => connection per worker count
grpc/grpc-go
D:\go\go-grpc-examples-benchmark\proto\unary>protoc --version
libprotoc 3.14.0
D:\go\go-grpc-examples-benchmark\proto\unary>protoc --go_out=plugins=grpc:. *.proto
reference