91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

Python中怎么搭建gRPC服務

發布時間:2022-05-25 16:19:12 來源:億速云 閱讀:192 作者:iii 欄目:大數據

本篇內容主要講解“Python中怎么搭建gRPC服務”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“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

黑山县| 孝义市| 威信县| 民权县| 灵山县| 白城市| 蛟河市| 靖边县| 水富县| 鄂托克前旗| 关岭| 建瓯市| 西安市| 会同县| 新巴尔虎左旗| 鹰潭市| 日喀则市| 旺苍县| 尤溪县| 民和| 明水县| 马公市| 滕州市| 桓台县| 梨树县| 桦川县| 南宁市| 合水县| 师宗县| 体育| 会宁县| 留坝县| 楚雄市| 益阳市| 漳平市| 和龙市| 太白县| 东莞市| 长泰县| 三穗县| 新巴尔虎右旗|