Python-grpc开发与使用说明(持续更新)

gRPC是一个开源的通用的高性能的通用远程过程调用(RPC)框架,由Google开发。gRPC支持多种语言,并且可以运行在多种环境中,在这里主要讨论python的使用与说明。

C++的相关配置可以跳转到在Ubuntu20.04环境下安装GRPC_ubuntu grpc-CSDN博客

gRPC使用Protocol Buffers(protobuf)作为接口描述语言(IDL),定义了服务。protobuf是Google开发的一种数据序列化协议(类似于XML、JSON、pickle等)。它可以用于数据存储、通信协议等方面。

相关配置与依赖

1.安装

pip install grpcio    #conda下注意替换

2.gRPC tools

pip install grpcio-tools

gRPC tools包含了protobuf的编译器protoc以及编译插件grpc_python_out,这些工具可以帮助我们编译和生成gRPC服务的客户端和服务端代码

在gRPC中,protoc是protobuf的编译器,可以将protobuf文件编译成对应语言的源代码文件。而grpc_python_out是gRPC为Python提供的编译插件,可以将protobuf文件编译成Python源代码文件,使得Python程序可以方便地调用gRPC服务。

3.测试运行demo

首先需要了解什么是proto文件,以及其编译的方法:

proto文件是一种用于定义数据结构和服务接口的文件格式,可以被编译成多种编程语言的源代码,用于生成对应的数据访问类和序列化/反序列化代码。这样,我们就可以在不同的编程语言中使用相同的数据结构和接口定义,实现跨语言的数据交换和通信。

我们在这里看一个官方的demo:

syntax = "proto3";

package helloworld;

service Greeter {
    // 基础Demo
    rpc SayHello (HelloRequest) returns (HelloResponse) {}
}

// 简单请求
message HelloRequest {
    string name = 1;
}

// 简单响应
message HelloResponse {
    string message = 1;
}

在给出的代码中,主要定义了一个greeter服务,其中有一个SayHello方法,该方法接收一个HelloRequest消息并返回一个HelloResponse消息。

接下来我们对它进行编译:

cd python_grpc  #更换成你自己的所在目录
python -m grpc_tools.protoc -I./ --python_out=./ --grpc_python_out=./ proto/helloworld.proto

可以看到编译的到的两个文件

接着一个终端输入:

python 服务端(改成自己文件名).py

另一个输入:

python 客户端.py

实现传输。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值