亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python怎么搭建gRPC服務

發布時間:2021-09-07 11:30:45 來源:億速云 閱讀:269 作者:小新 欄目:編程語言

這篇文章主要介紹Python怎么搭建gRPC服務,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

1、安裝python所需的庫。

pip install grpcio
pip 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<string, int32> 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=utf8
import time
from concurrent import futures
import grpc
from gRPC_example import hello_pb2_grpc, hello_pb2
_ONE_DAY_IN_SECONDS = 60 * 60 * 24
class 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=utf8
import grpc
from gRPC_example import #! /usr/bin/env python
# coding=utf8
import grpc
from gRPC_example import hello_pb2_grpc, hello_pb2
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)
    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服務”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武威市| 化德县| 枣阳市| 峨边| 加查县| 封开县| 新建县| 馆陶县| 珠海市| 安康市| 平和县| 红河县| 花莲县| 伊金霍洛旗| 鄄城县| 荣昌县| 华安县| 延庆县| 池州市| 凤山县| 南雄市| 长岛县| 青岛市| 平顶山市| 东乡县| 荔浦县| 宜州市| 婺源县| 达拉特旗| 河东区| 喜德县| 烟台市| 西藏| 凯里市| 通河县| 崇文区| 增城市| 藁城市| 山东省| 攀枝花市| 张北县|