python grpc 예제

Skrevs fredagen den 2 augusti, 2019

시스템 소유 설치로 인해 pip를 업그레이드할 수 없는 경우 virtualenv에서 예제를 실행할 수 있습니다: 참고: pb2의 2는 생성된 코드가 프로토콜 버퍼 파이썬 API 버전 2를 따르고 있음을 나타냅니다. 버전 1은 더 이상 사용되지 않습니다. .proto 파일에서 구문 = ”proto3” 또는 구문 = ”proto2″로 표시된 프로토콜 버퍼스 언어 버전과는 관계가 없습니다. 3- 프로토 파일을 사용하여 파이썬에 대한 gRPC 클래스를 생성하는 이 코드는 간단한 참조 응용 프로그램에 대해 완벽하게 허용되는 접근 방식인 동일한 포트에 여러 서비스를 노출한다는 점에서 위에서 언급 한 예제 코드와 약간 다릅니다. 위의 코드에서 발견 할 수있는 것 중 하나는 GRPC 서버에 등록하는 작업을 각 서비스 구현에 대한 별도의 생성자 함수에 위임한다는 것입니다. 예를 들어 user_management_service_grpc.py 파일은 실제로 등록을 수행하는 생성자를 찾습니다. RPC 및 grpc에 대한 포인트 요청입니다. 시간 제한과 같은 RPC 관련 정보를 제공하는 ServicerContext 개체입니다. route_guide_pb2를 반환합니다. 기능 응답.

단일 응답(”응답 없는” 메서드)을 반환하는 RPC 메서드의 경우 gRPC Python은 동기(차단) 및 비동기(비차단) 제어 흐름 의미 체계를 모두 지원합니다. 응답 스트리밍 RPC 메서드의 경우 호출은 즉시 응답 값의 이터레이터를 반환합니다. 상기 거위에서 양보할 응답이 사용 가능해질 때까지 해당 이터레이터의 다음() 메서드 블록에 대한 호출입니다. 또한 GRPC는 의미 체계를 전달하는 비동기 메시지를 지원합니다. user_management_events.proto 파일에서 예제 ”이벤트” 정의를 볼 수 있습니다. 우리는 곧 게시물에 메시징에 더 많은 파고. 마지막 단계는 GRPC 서버를 시작하고 서비스를 등록하는 것입니다. GRPC 생성기가이 작업을 수행 할 수있는 좋은 main() 함수를 생성하는 옵션이 있었으면 좋겠지 만 예제 코드를 복사하면됩니다. 모듈의 루트(__init___py)의 루트에서 모든 KillrVideo 서비스를 시작하는 코드를 찾을 수 있습니다: GRPC에 정의된 서비스 인터페이스가 주어지면 다음 단계는 선택한 구현 언어로 바인딩을 만드는 것입니다. 파이썬.

사용 가능한 훌륭한 자습서 중 일부를 활용하여 여러 서비스에 대한 스텁을 생성하는 방법을 알아냈습니다. 먼저 grpcio 도구 패키지를 설치해야했습니다 : 위의 명령은 누군가가 스텁을 재생성해야하는 경우 (예 : 인터페이스 변경)를 재생성해야하는 경우 저장소에 포함 된 generate-grpc-stubs.sh 스크립트에 유지됩니다. user_management_service_pb2_grpc.py와 같은 생성된 파일 중 하나를 검사하면 다음과 같은 파이썬 클래스인 서버 스텁이 표시됩니다. 서버에 PredictSevicer 클래스를 추가 하기 전에 생성 되었습니다. 당신은 소화자_pb2.py 및 소화자_pb2_grpc.py 생성이라는 2 개의 파일을 볼 수 있어야합니다. 이들은 우리가 gRPC 서버와 gRPC 클라이언트를 쓸 수있는 사용하는 두 개의 스텁 파일입니다. 다음은 user_management_service_grpc.py의 예입니다.

Teater Kapija
Örmölla 321
SE-274 56 Abbekås

+46 (0)411 533 772
+46 (0)70 740 17 61

info@kapija.com
www.kapija.com