Python gRPC基础示例:服务器和客户端

作者:da吃一鲸8862024.02.16 23:55浏览量:3

简介:本篇文章将通过一个简单的示例来展示如何使用Python的gRPC库来创建一个基本的gRPC服务器和客户端。我们将实现一个简单的计算器服务,其中服务器能够响应客户端的加法请求。

在开始之前,请确保您已经安装了grpcioprotobuf库。如果尚未安装,可以使用以下命令进行安装:

  1. pip install grpcio protobuf

接下来,我们将创建一个简单的计算器服务。首先,我们需要定义服务定义和消息类型。在calculator.proto文件中,我们将定义服务定义和消息类型:

  1. syntax = "proto3";
  2. package calculator;
  3. // The calculator service definition.
  4. service Calculator {
  5. // Obligatory “hello world” example.
  6. rpc Add (AddRequest) returns (AddResponse);
  7. }
  8. // The request message containing two ints.
  9. message AddRequest {
  10. int32 a = 1;
  11. int32 b = 2;
  12. }
  13. // The response message containing the sum.
  14. message AddResponse {
  15. int32 sum = 1;
  16. }

接下来,我们将使用protoc编译器生成Python代码。运行以下命令生成代码:

  1. python -m grpc_tools.protoc -I./ --python_out=./ --grpc_python_out=./ calculator.proto

这将生成两个文件:calculator_pb2.pycalculator_pb2_grpc.py。现在我们可以编写gRPC服务器和客户端代码。

首先,我们来实现gRPC服务器。在server.py文件中,我们将编写以下代码:

  1. import grpc
  2. from concurrent import futures
  3. import time
  4. from calculator_pb2 import AddRequest, AddResponse
  5. from calculator_pb2_grpc import CalculatorServicer, add_to_server
  6. class Calculator(CalculatorServicer):
  7. def Add(self, request, context):
  8. a = request.a
  9. b = request.b
  10. return AddResponse(sum=a + b)