Search

gRPC with Python

가. Quick Start

1) gRPC & Tools

grpc 설치
pip install grpcio
grpc tools 설치
grpc tools에는 proto buffer compiler(protoc)와 code generator(.proto로부터 서버와 클라이언트의 코드 생성) 등이 있음
pip install grpcio-tools

2) 기본동작

Update gRPC Service
→ 서버 클라언트 통신에 필요한 기능 정의
→ gRPC method, message 정의
Generate gRPC Code
→ gRPC code generator를 실행하여 _pb.py, pbgrpc.py 코드 생성
→ 각각의 코드는 gRPC request, response 클래스와 client, service 클래스를 의미함
Update Server
→ 추가된 gRPC method를 활용하여 response 보내는 부분 추가
Update Client
→ 추가된 gRPC method를 활용하여 request 보내는 부분 추가
Execute Server & Client

나. 이슈

1) connection issue

gRPC server   client connection issue → 재현: gRPC server가 50051 포트에서 백그라운드로 돌아가고 있는 상태에서 또다른 gRPC server 같은 포트로 동작시키고 gRPC client를 실행시키면 같은 로그 확인 가능 → 해결: 기존 gRPC 서버의 프로세스 확인(lsof -i :50051) 및 종료(kill -2 <PID>)시킨 후 의도한대로 server와 client 실행 → 이하 에러 로그 참고
grpc._channel._MultiThreadedRendezvous: <_MultiThreadedRendezvous of RPC that terminated with: status = StatusCode.UNIMPLEMENTED
Plain Text
복사

Reference