가. 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
•
Quick Start, https://grpc.io/docs/languages/python/quickstart/