grpc协议概述
grpc是一种基于某种协议实现不同机器间进行通信的服务框架。不同机器可以是不同的服务端、客户端,当服务端实现好某些功能后,提供一个服务接口,供不同客户端进行接口调用,从而让不同客户端都能够“享用”到服务端提供的功能。在实际业务场景,比如我是做算法的,那么当我的模型训练完成后,要放到线上让别人调用,则经常是以grpc的方式进行实现的。简单流程就是我写个服务端,实现接收客户端传来的数据,并进行模型推理计算,计算结果再返回客户端,那么客户端实际只需要提供数据即可得到它们想要的结果,中间数据的处理过程均由服务端来完成。
搭建通信过程
协议文件
定义一个文件名为recevicedata.proto文件(可能需要下载插件以识别这个文件),并输入以下代码
// 这里我们用的是proto3版本,版本号是一定要指定的哦!
syntax = "proto3";
import "google/protobuf/wrappers.proto";
service LabelService {
/**
样本集接口
*/
rpc receiveSample(SampleRequestList) returns (google.protobuf.BoolValue) {
}
}
message SampleRequestList {
repeated SampleRequest reqList = 1;
}
message SampleRequest {
/**
标签值
*/
string labelValue = 1;
/**
样本集数据
*/
string text = 2;
}
运行以下命令
python -m grpc_tools.protoc -I. --python_out=../grpc_file --grpc_python_out=../grpc_file receivedata.proto
会在grpc_file文件目录下生成两个python文件
服务端
创建server.py文件,输入:
import logging
import sys
sys.path.append('..')
import time
import datetime
from concurrent import futures
import grpc_file
import jieba
import re
import grpc
from grpc_file import ReceiveData_pb2_grpc
# 这个地方的BoolValue可能会飘红,不用管,用就行了
from google

最低0.47元/天 解锁文章
1878

被折叠的 条评论
为什么被折叠?



