Ich habe gRPC mit Python ausprobiert

Installieren Sie Folgendes auf Ihrem Mac

$ brew install protobuf
$ pip install grpcio-tools

Bereiten Sie eine Protodatei vor

hoge.proto


syntax = "proto3";

package gateway;

message ReplyRequest {
    string message = 1;
}

message ReplyResponse {
    string message = 1;
}

service AVRGateway {
    rpc Reply (ReplyRequest) returns (ReplyResponse) {}
}

Schreiben Sie Protokolleinstellungen als zu generierende Datei

codegen.py


from grpc.tools import protoc


protoc.main(
    (
        '',
        '-I.',
        '--python_out=.',
        '--grpc_python_out=.',
        './hoge.proto',
    )
)

Führen Sie die oben erstellte Datei "codegen.py" aus.

$ python ./codegen.py

Erstellen Sie eine Py-Datei für den Server

grpc_server.py


from concurrent import futures
import time

import grpc

from hoge_pb2 import ReplyResponse
from hoge_pb2_grpc import AVRGatewayServicer
from hoge_pb2_grpc import add_AVRGatewayServicer_to_server

_ONE_DAY_IN_SECONDS = 60 * 60 * 24


class RouteGuideServicer(AVRGatewayServicer):
    def Reply(self, request, context):
        print('reply!')
        return ReplyResponse(message='Hoge')


def serve():
    server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
    add_AVRGatewayServicer_to_server(
            RouteGuideServicer(), server)
    server.add_insecure_port('[::]:50051')
    server.start()
    try:
        while True:
            time.sleep(_ONE_DAY_IN_SECONDS)
    except KeyboardInterrupt:
        server.stop(0)


if __name__ == '__main__':
    serve()

Erstellen Sie auf der Clientseite eine Py-Datei

stub.py


from __future__ import print_function
import grpc
import hoge_pb2
import hoge_pb2_grpc


def run():
    channel = grpc.insecure_channel('localhost:50051')
    stub = hoge_pb2_grpc.AVRGatewayStub(channel)
    response = stub.Reply(hoge_pb2.ReplyRequest(message='hoge'))
    print("Greeter client received: " + response.message)


if __name__ == '__main__':
    run()

Lassen Sie uns Client nach Server ausführen

https://blog.fenrir-inc.com/jp/2016/10/grpc-go.html

Recommended Posts

Ich habe gRPC mit Python ausprobiert
Ich habe fp-Wachstum mit Python versucht
Ich habe versucht, mit Python zu kratzen
Ich habe versucht, mit Python zu kratzen
Ich habe versucht, WebScraping mit Python.
Ich habe versucht, Prolog mit Python 3.8.2 auszuführen.
Ich habe die SMTP-Kommunikation mit Python versucht
Ich habe Python> autopep8 ausprobiert
Ich habe versucht, mit Python + opencv nicht realistisch zu rendern
GRPC beginnend mit Python
Ich habe eine funktionale Sprache mit Python ausprobiert
Ich habe versucht, mit Python ② (Fibonacci-Zahlenfolge) aufzuklären.
Ich habe Python> Decorator ausprobiert
# Ich habe so etwas wie Vlookup mit Python # 2 ausprobiert
Ich habe versucht, das Bild mit Python + OpenCV zu "glätten"
Ich habe versucht, das Bild mit Python + OpenCV zu "differenzieren"
Ich habe L-Chika mit Razpai 4 (Python Edition) ausprobiert.
Ich habe versucht, Mecab mit Python2.7, Ruby2.3, PHP7 zu verwenden
Ich habe Funktionssynthese und Curry mit Python versucht
Ich habe versucht, LLVM IR mit Python auszugeben
Ich habe versucht, das Bild mit Python + OpenCV zu "binarisieren"
Ich habe versucht, mit Python Faiss zu laufen, Go, Rust
Ich habe versucht, die Herstellung von Sushi mit Python zu automatisieren
Ich habe versucht, Deep Floor Plan mit Python 3.6.10 auszuführen.
Ich habe versucht, eine E-Mail mit SendGrid + Python zu senden
Ich habe versucht, mit Elasticsearch Ranking zu lernen!
Ich habe einen Blackjack mit Python gemacht!
Ich habe versucht, mit PyCaret zu clustern
Ich habe die C-Erweiterung von Python ausprobiert
Ich habe mit Python einen Blackjack gemacht.
Ich habe Wordcloud mit Python gemacht.
Ich habe versucht, Mine Sweeper auf dem Terminal mit Python zu implementieren
Ich habe versucht, mit Blenders Python script_Part 01 zu beginnen
Ich habe versucht, eine CSV-Datei mit Python zu berühren
[OpenCV / Python] Ich habe versucht, Bilder mit OpenCV zu analysieren
Ich habe versucht, Soma Cube mit Python zu lösen
Ich habe versucht, mit Blenders Python script_Part 02 zu beginnen
Ich habe versucht, künstliches Perzeptron mit Python zu implementieren
Mayungos Python-Lernfolge 1: Ich habe versucht, mit Druck zu drucken
Ich habe versucht, das Problem mit Python Vol.1 zu lösen
Ich habe versucht, das Bild mit Python + OpenCV "morphologisch zu konvertieren"
Ich habe versucht, die API mit dem Python-Client von echonest zu erreichen
Ich habe versucht, AOJs Integer-Theorie mit Python zu lösen
Ich habe versucht, Python zu berühren (Installation)
pyenv-vertualenv installiert die Python3-Serie nicht gut
Ich habe versucht, Sätze mit summpy zusammenzufassen
Ich habe versucht, Essen mit SinGAN zu bewegen
Ich habe mit Python eine Lotterie gemacht.
Ich habe versucht, DeepPose mit PyTorch zu implementieren
Ich habe versucht, Thonny (Python / IDE) zu verwenden.
Ich habe es mit Grumpy versucht (Python ausführen).
Ich mochte den Tweet mit Python. ..
Ich habe versucht, das Gesicht mit MTCNN zu erkennen
Ich habe mit PyQt5 und Python3 gespielt
Ich möchte mit Python debuggen