python grpc()

python rpc

1.1 安装和入门(Quick start)

1.下载和安装
下载包:

pip install grpcio
pip install grpcio-tools

运行examples/python/helloworld时,需要运行:

python -m grpc_tools.protoc -I../../protos --python_out=. --pyi_out=. --grpc_python_out=. ../../protos/helloworld.proto

代表将库文件当成脚本进行运行。我这里运行的是
上面的命令生成了helloworld_pb2.py和helloworld_pb2_grpc.py

python -m
anaconda3/envs/grpc/lib/python3.9/site-packages/grpc_tools/protoc.py

2.在proto中添加方法
在proto中添加方法SayHelloAgain,并在server中实现SayHelloAgain方法,最后在client中使用server中实现的SayHelloAgain方法。

1.2 基础教程(Basics tutorial)

进入examples/python/route_guide,运行:

python -m grpc_tools.protoc -I../../protos --python_out=. --pyi_out=. --grpc_python_out=. ../../protos/route_guide.proto

代表将库文件当成脚本进行运行。我这里运行的是
上面的命令生成了route_guide_pb2.py和route_guide_pb2_grpc.py

python -m
anaconda3/envs/grpc/lib/python3.9/site-packages/grpc_tools/protoc.py

实现server的流程:

  • 实现proto中定义的service
  • 开启监听,监听客户发来的请求

feature = stub.GetFeature(point) # 如果没有立即返回,应该会阻塞在这里

feature_future = stub.GetFeature.future(point) # 如果没有立即返回,不会阻塞在这里
feature = feature_future.result() # 想要结果的时候再去取出来

————————

python rpc

1.1 安装和入门(Quick start)

1.下载和安装
下载包:

pip install grpcio
pip install grpcio-tools

运行examples/python/helloworld时,需要运行:

python -m grpc_tools.protoc -I../../protos --python_out=. --pyi_out=. --grpc_python_out=. ../../protos/helloworld.proto

代表将库文件当成脚本进行运行。我这里运行的是
上面的命令生成了helloworld_pb2.py和helloworld_pb2_grpc.py

python -m
anaconda3/envs/grpc/lib/python3.9/site-packages/grpc_tools/protoc.py

2.在proto中添加方法
在proto中添加方法SayHelloAgain,并在server中实现SayHelloAgain方法,最后在client中使用server中实现的SayHelloAgain方法。

1.2 基础教程(Basics tutorial)

进入examples/python/route_guide,运行:

python -m grpc_tools.protoc -I../../protos --python_out=. --pyi_out=. --grpc_python_out=. ../../protos/route_guide.proto

代表将库文件当成脚本进行运行。我这里运行的是
上面的命令生成了route_guide_pb2.py和route_guide_pb2_grpc.py

python -m
anaconda3/envs/grpc/lib/python3.9/site-packages/grpc_tools/protoc.py

实现server的流程:

  • 实现proto中定义的service
  • 开启监听,监听客户发来的请求

feature = stub.GetFeature(point) # 如果没有立即返回,应该会阻塞在这里

feature_future = stub.GetFeature.future(point) # 如果没有立即返回,不会阻塞在这里
feature = feature_future.result() # 想要结果的时候再去取出来