实话来讲,真不赞成用python写业务服务端代码。本章是用python语言实现的一套grpc框架,例子不太复杂,实现了就是​​基于grpc从零开始搭建一个准生产分布式应用(系列)​​ 这里的例子。笔者在实现demo时踩了好多坑,因为网上资料很少。

一、安装必要的库

下表中的包的版本有些一定要一样,不然会出现应用不了protobuf的问题。

pip3 install grpcio==1.43.0
pip3 install grpcio-tools==1.43.0

pip3 install protobuf==3.20.1

二、运行示例程序

可看下源码中的readme.md文件。进入到项目根路径下执行,--python_out一定要指定项目根路径(这是官司实现的一个规范,不能换目录)。

python3 -m grpc_tools.protoc --python_out=../ --grpc_python_out=../ -I=. ./*.proto

然后依次运行:

服务端:ApplicationServerStart.py
客户端:SystemlogTest.py

三、命令行测试方法

python不能用图行工具测试,命令行测试方式如下

brew install grpcurl
//查看GRPC服务所有的服务列表
grpcurl --plaintext 127.0.0.1:9898 list
输出如下:
/*grpc.health.v1.Health
grpc.reflection.v1alpha.ServerReflection
net.devh.boot.grpc.example.MyService
*/

//查看某一个接口提供的服务接口
grpcurl --plaintext 127.0.0.1:9898 list net.devh.boot.grpc.example.MyService
输出如下:
/*net.devh.boot.grpc.example.MyService.SayHello*/

//模拟访问
grpcurl --plaintext -d '{"name": "test"}' 127.0.0.1:9898 net.devh.boot.grpc.example.MyService/sayHello