實話來講,真不贊成用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