千家信息网

Python怎么搭建gRPC服务

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍Python怎么搭建gRPC服务,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、安装python所需的库。pip install grpciopip inst
千家信息网最后更新 2026年11月03日Python怎么搭建gRPC服务

这篇文章主要介绍Python怎么搭建gRPC服务,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

1、安装python所需的库。

pip install grpciopip install grpcio-tools  pip install protobuf

2、定义gRPC接口。

syntax = "proto3";option cc_generic_services = true;//定义服务接口service GrpcService {    rpc hello (HelloRequest) returns (HelloResponse) {}  //一个服务中可以定义多个接口,也就是多个函数功能}//请求的参数message HelloRequest {    string data = 1;   //数字1,2是参数的位置顺序,并不是对参数赋值    Skill skill = 2;  //支持自定义的数据格式,非常灵活};//返回的对象message HelloResponse {    string result = 1;    map map_result = 2; //支持map数据格式,类似dict};message Skill {    string name = 1;};

3、用protoc和相应的插件编译生成相应语言的代码。

python -m grpc_tools.protoc -I ./ --python_out=./ --grpc_python_out=. ./hello.proto

使用编译工具将proto文件转换成py文件,直接在当前文件目录下运行上述代码。

4、编写grpc服务器代码。

#! /usr/bin/env python# coding=utf8import timefrom concurrent import futuresimport grpcfrom gRPC_example import hello_pb2_grpc, hello_pb2_ONE_DAY_IN_SECONDS = 60 * 60 * 24class TestService(hello_pb2_grpc.GrpcServiceServicer):    '''    继承GrpcServiceServicer,实现hello方法    '''    def __init__(self):        pass    def hello(self, request, context):        '''        具体实现hello的方法,并按照pb的返回对象构造HelloResponse返回        :param request:        :param context:        :return:        '''        result = request.data + request.skill.name + " this is gprc test service"        list_result = {"12": 1232}        return hello_pb2.HelloResponse(result=str(result),                                       map_result=list_result)def run():    '''    模拟服务启动    :return:    '''    server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))    hello_pb2_grpc.add_GrpcServiceServicer_to_server(TestService(),server)    server.add_insecure_port('[::]:50052')    server.start()    print("start service...")    try:        while True:            time.sleep(_ONE_DAY_IN_SECONDS)    except KeyboardInterrupt:        server.stop(0)if __name__ == '__main__':    run()

5、编写gRPC客户端代码。

#! /usr/bin/env python# coding=utf8import grpcfrom gRPC_example import #! /usr/bin/env python# coding=utf8import grpcfrom gRPC_example import hello_pb2_grpc, hello_pb2def run():    '''    模拟请求服务方法信息    :return:    '''    conn=grpc.insecure_channel('localhost:50052')    client = hello_pb2_grpc.GrpcServiceStub(channel=conn)    skill = hello_pb2.Skill(name="engineer")    request = hello_pb2.HelloRequest(data="xiao gang", skill=skill)    respnse = client.hello(request)    print("received:",respnse.result)if __name__ == '__main__':    run()def run():    '''    模拟请求服务方法信息    :return:    '''    conn=grpc.insecure_channel('localhost:50052')    client = hello_pb2_grpc.GrpcServiceStub(channel=conn)    skill = hello_pb2.Skill(name="engineer")    request = hello_pb2.HelloRequest(data="xiao gang", skill=skill)    response = client.hello(request)    print("received:",response.result)if __name__ == '__main__':    run()

6、调用测试。

首先启动运行服务器的代码,然后启动运行客户端的代码。

以上是"Python怎么搭建gRPC服务"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

服务 代码 方法 参数 接口 文件 运行 信息 内容 多个 客户 对象 数据 服务器 格式 篇文章 支持 编译 也就是 价值 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 天津市摩尔互联网科技 新华互联网科技学院 碳银互联网科技 互联网科技视频 成都互联网科技公司 新浪科技互联网 伴你行互联网科技有限公司 广西拼得多互联网科技有限公司 互联网汽车科技小镇 新华互联网科技2019 央行互联网金融科技公司 现代互联网科技股 互联网科技与管理 崇明区互联网教育科技诚信经营 智腾互联网科技有限公司 合肥互联网科技公司公章图片 2021世界互联网领先科技成果发布 广西泛欧互联网科技有限公司 知域互联网科技有限公司官网 广州全民伙伴互联网科技有限公司 保险科技 互联网保险 河南云网互联网络科技有限公司 奇酷互联网科技 重庆科技学院互联网 济南和联互联网科技有限公司 哈尔滨屹滨互联网科技有限公司 互联网科技大奖都有哪些公司 智帮互联网科技公司最近动向 互联网高科技行业有哪些企业 万物互联网智能科技
0