파이썬의 gRPC 도구에는 프로토콜 버퍼 컴파일러 프로토크와 .proto 서비스 정의에서 서버 및 클라이언트 코드를 생성하기위한 특별한 플러그인이 포함됩니다. 빠른 시작 예제의 첫 번째 부분에서는 helloworld.proto에서 서버 및 클라이언트 스텁을 이미 생성했지만 나머지 퀵스타트와 이후 자습서 및 자체 프로젝트에 대한 도구가 필요합니다. user_management_service_pb2_grpc.py와 같은 생성된 파일 중 하나를 검사하면 다음과 같은 Python 클래스인 서버 스텁이 표시됩니다. 단일 응답(“응답 없는” 메서드)을 반환하는 RPC 메서드의 경우 gRPC Python은 동기(차단) 및 비동기(비차단) 제어 흐름 의미 체계를 모두 지원합니다. 응답 스트리밍 RPC 메서드의 경우 호출은 즉시 응답 값의 이터레이터를 반환합니다. 상기 거위에서 양보할 응답이 사용 가능해질 때까지 해당 이터레이터의 다음() 메서드 블록에 대한 호출입니다. 나는 공식 문서로 향하고, 나의 현재 언어 (파이썬)에 대한 섹션을 열었고, 즉시 후드 아래에서 일어나는 것처럼 보였던 모든 사전 작성된 코드와 검은 마법에서 길을 잃었습니다. 위의 명령은 누군가가 스텁을 다시 생성해야하는 경우 (예 : 인터페이스 변경시) 저장소에 포함 된 generate-grpc-stubs.sh 스크립트에 유지됩니다. 다음으로 작업을 시작하려면 가상 환경에 grpcio를 설치해야합니다: 메서드는 route_guide_pb2를 통과합니다. RPC 및 grpc에 대한 포인트 요청입니다. 시간 제한과 같은 RPC 관련 정보를 제공하는 ServicerContext 개체입니다. route_guide_pb2를 반환합니다. 기능 응답.

다음은 user_management_service_grpc.py의 예입니다. 마지막 단계는 GRPC 서버를 시작하고 서비스를 등록하는 것입니다. GRPC 생성기가이 작업을 수행 할 수있는 좋은 main() 함수를 생성하는 옵션이 있었으면 좋겠지 만 예제 코드를 복사하면됩니다. 모듈의 루트(__init____py)의 루트에서 기본 응용 프로그램 파일에서 KillrVideo 서비스를 모두 시작하는 코드를 찾을 수 있습니다: 다음 명령을 사용하여 파이썬 코드를 생성합니다: digestor_pb2.py 및 digestor_pb2____라는 파일 2개 보아야 합니다. grpc.py 생성됩니다. 이들은 우리가 gRPC 서버와 gRPC 클라이언트를 쓸 수있는 사용하는 두 개의 스텁 파일입니다. 또한 GRPC는 의미 체계를 전달하는 비동기 메시지를 지원합니다. user_management_events.proto 파일에서 예제 “이벤트” 정의를 볼 수 있습니다. 우리는 곧 게시물에 메시징에 더 많은 파고. 이 시리즈의 첫 번째 게시물에서는 KillrVideo 참조 응용 프로그램과 파이썬의 KillrVideo용 마이크로 서비스 계층의 새로운 구현을 만드는 동기를 설명했습니다.