实话来讲,真不赞成用python写业务服务端代码。本章是用python语言实现的一套grpc框架,例子不太复杂,实现了就是基于grpc从零开始搭建一个准生产分布式应用(系列) 这里的
实话来讲,真不赞成用python写业务服务端代码。本章是用python语言实现的一套grpc框架,例子不太复杂,实现了就是基于grpc从零开始搭建一个准生产分布式应用(系列) 这里的例子。笔者在实现demo时踩了好多坑,因为网上资料很少。
一、安装必要的库
下表中的包的版本有些一定要一样,不然会出现应用不了protobuf的问题。
pip3 install grpcio==1.43.0pip3 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