ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

GRPC搭建 : Python篇

2020-02-27 17:42:29  阅读:466  来源: 互联网

标签:__ pb2 GRPC server python Python pip 搭建 grpc


  1. Python 安装, 下载后直接安装

 

2.  Pip 安装

 $ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py   # 下载安装脚本
 $ sudo python get-pip.py    # 运行安装脚本

3. grpc安装

gRPC 的安装:

$ pip install grpcio

安装 ProtoBuf 相关的 python 依赖库:

$ pip install protobuf

 

安装 python grpc 的 protobuf 编译工具:

$ pip install grpcio-tools

 

4. grpc简单使用

(1) proto 文件

(2) 生成grpc和protobuf的python文件

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

 

(3) 客户端

# -*- coding: utf-8 -*-

import grpc

import person_pb2_grpc

import person_pb2

 

def run():

    conn = grpc.insecure_channel('localhost:1020')

    client = person_pb2_grpc.GreeterStub(channel=conn)

    response = client.SayHello(person_pb2.HelloRequest(name="Python"))

    print("received : ", response.message)

 

if __name__ == '__main__':

    run()

 

(4) 服务器端

fromconcurrentimportfutures

importtime

importgrpc

importperson_pb2

importperson_pb2_grpc

 

#实现proto文件中定义的GreeterServicer

classGreeter(person_pb2_grpc.GreeterServicer):

#实现proto文件中定义的rpc调用

defSayHello(self,request,context):

returnperson_pb2.HelloReply(message='hello{msg}'.format(msg=request.name))

 

defserve():

server=grpc.server(futures.ThreadPoolExecutor(max_workers=10))

person_pb2_grpc.add_GreeterServicer_to_server(Greeter(),server)

server.add_insecure_port('[::]:1020')

server.start()

try:

whileTrue:

time.sleep(60*60*24)#onedayinseconds

exceptKeyboardInterrupt:

server.stop(0)

 

if__name__=='__main__':

serve()

 

参考:

pip安装  https://www.runoob.com/w3cnote/python-pip-install-usage.html

grpc安装 https://blog.csdn.net/circleyuanquan/article/details/82803814

grpc使用 https://www.jianshu.com/p/43fdfeb105ff

 

 

听我一言 发布了4 篇原创文章 · 获赞 0 · 访问量 72 私信 关注

标签:__,pb2,GRPC,server,python,Python,pip,搭建,grpc
来源: https://blog.csdn.net/halo_hsuh/article/details/104540656

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有