Python从门到精通:Grpc实现
Posted 生而为人我很遗憾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python从门到精通:Grpc实现相关的知识,希望对你有一定的参考价值。
实话来讲,真不赞成用python写业务服务端代码。本章是用python语言实现的一套grpc框架,例子不太复杂,实现了就是基于grpc从零开始搭建一个准生产分布式应用(系列) 这里的例子。笔者在实现demo时踩了好多坑,因为网上资料很少。
程序下载地址:demo-python源码 提取码: 26kv
一、安装必要的库
下表中的包的版本有些一定要一样,不然会出现应用不了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
以上是关于Python从门到精通:Grpc实现的主要内容,如果未能解决你的问题,请参考以下文章