程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

 Python從門到精通(九):Grpc實現

編輯:Python

實話來講,真不贊成用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
  • 1.
  • 2.
  • 3.
  • 4.

二、運行示例程序

可看下源碼中的readme.md文件。進入到項目根路徑下執行,--python_out一定要指定項目根路徑(這是官司實現的一個規范,不能換目錄)。

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

  • 1.

然後依次運行:

服務端:ApplicationServerStart.py

客戶端:SystemlogTest.py
  • 1.
  • 2.

三、命令行測試方法

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
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.



  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved