日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)Python教程:Python如何搭建gRPC服務(wù)

1、安裝python所需的庫。

專注于為中小企業(yè)提供做網(wǎng)站、成都做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)云龍免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了超過千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

pip install gRPCio
pip install grpcio-tools  
pip install protobuf

2、定義gRPC接口。

syntax = "proto3";
option cc_generic_services = true;
//定義服務(wù)接口
service GrpcService {
    rpc hello (HelloRequest) returns (HelloResponse) {}  //一個(gè)服務(wù)中可以定義多個(gè)接口,也就是多個(gè)函數(shù)功能
}
//請(qǐng)求的參數(shù)
message HelloRequest {
    string data = 1;   //數(shù)字1,2是參數(shù)的位置順序,并不是對(duì)參數(shù)賦值
    Skill skill = 2;  //支持自定義的數(shù)據(jù)格式,非常靈活
};
//返回的對(duì)象
message HelloResponse {
    string result = 1;
    map map_result = 2; //支持map數(shù)據(jù)格式,類似dict
};
message Skill {
    string name = 1;
};

3、用protoc和插件編譯生成語言代碼。

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

使用編譯工具將proto文件轉(zhuǎn)換成py文件,直接在當(dāng)前文件目錄下運(yùn)行上述代碼。

4、編寫grpc服務(wù)器代碼。

#! /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,實(shí)現(xiàn)hello方法
    '''
    def __init__(self):
        pass
    def hello(self, request, context):
        '''
        具體實(shí)現(xiàn)hello的方法,并按照pb的返回對(duì)象構(gòu)造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():
    '''
    模擬服務(wù)啟動(dòng)
    :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():
    '''
    模擬請(qǐng)求服務(wù)方法信息
    :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():
    '''
    模擬請(qǐng)求服務(wù)方法信息
    :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、調(diào)用測(cè)試。

首先啟動(dòng)運(yùn)行服務(wù)器的代碼,然后啟動(dòng)運(yùn)行客戶端的代碼。

以上就是Python搭建gRPC服務(wù)的方法,希望對(duì)大家有所幫助。更多Python學(xué)習(xí)指路:創(chuàng)新互聯(lián)Python教程

本文教程操作環(huán)境:windows7系統(tǒng)、Python 3.9.1,DELL G3電腦。


網(wǎng)頁題目:創(chuàng)新互聯(lián)Python教程:Python如何搭建gRPC服務(wù)
文章位置:http://www.5511xx.com/article/cddddhe.html