gRPC Golang / Pythonの使用

gRPC Golang / Pythonの使用

以前に開発されたサイトは、httpプロトコルを使用して、TCP / IPプロトコルがHTTPアプリケーション層は、特定のルールテキストで満たされ、トランスポート層のTCPに基づいて、知って学習されます。

1.gRPCの使用とプレゼンテーション

gRPCに使用する作業は、実際には、また、HTTPリクエストのRPC変異体である、リモートプロシージャは.gRPC基本的なプロトコルがHTTP2で呼び出します

グーグルが開発したgRPCの始まりは、言語に依存し、プラットフォームに依存しない、オープンソースのリモートプロシージャコール(RPC)、モバイルおよびHTTP / 2の設計のためのシステムです。CバージョンはC、C ++、Node.jsの、Pythonの、ルビー、Objective-Cの、PHPやC#のサポートをサポートしている現在、C、Javaが提供、および言語バージョン、すなわち:. Grpc、grpc-javaの行く、grpc-行きます。

gRPC HTTP / 2標準設計に基づいて、双方向の流れがもたらすような、制御、ヘッダ圧縮、他のビットに多重化する複数の単一のTCP接続要求を流れます。これらの特性は、モバイルデバイス上の優れたパフォーマンス、より多くの電力とスペース占有します。

以下の概念に基づいてgRPC:サービスの定義は、(パラメータおよび戻り型を含む)、そのメソッドを指定し、リモート起動することができます。サービス側では、このインタフェースを実装し、クライアントのコールを処理するためにgRPCサーバを実行します。クライアントは、サーバを同じマシンであるかのように呼び出すスタブと同じ方法を持つことができます。

あなたは、開発のためのさまざまな言語プラットフォームを使用することができます

grpc.png

Googleは、成熟したオープンソースのデータ構造の直列化機構であるメッセージ通信のためのgRPCデフォルトのプロトコル・バッファー、

参考:GRPC公式文書中国語版 | コンセプト

プロトコル

プロトコルバッファは、構造化データをシリアライズするためのGoogleの言語に依存し、プラットフォームに依存しない、拡張可能なメカニズムです - XMLと思いますが、より速く、より小さく、より単純な。あなたは、あなたのデータは、あなたが簡単にし、データストリームの多様性とさまざまな言語を使用してから、あなたの構造化データを読み書きするために、特別な生成されたソースコードを使用することができ、一度に構成することにしたい方法を定義します。

プロジェクト住所:https://github.com/google/protobuf

インストールリファレンス:https://github.com/google/protobuf/blob/master/src/README.md

インストールThe protocol compiler

sudo apt-get install autoconf automake libtool curl make g++ unzip
./autogen.sh
####
#执行./autogen.sh时,报error: configure.ac:1: file'gtest/m4/acx_pthread.m4' does not exist的错误。
#在gmock目录新建gtest文件夹,拷贝项目根目录下m4文件夹至gtest文件夹
####
./configure
make
make check
sudo make install
sudo ldconfig # refresh shared library cache.

(次の言語でプラグインをインストールする必要が行く)を使用します

go get -u github.com/golang/protobuf/proto
go get -u github.com/golang/protobuf/protoc-gen-go

ドキュメントの参照:プロトコルバッファのドキュメント

ゴーgRPC

ライブラリの囲碁版:https://github.com/grpc/grpc-go

アクセス:

go get google.golang.org/grpc

使用

protoc --go_out=plugins=grpc:. *.proto

あなたは、ゲートウェイHTTPを有効にする場合は、してください

go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway
go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger

それから

#!/usr/bin/env bash
protoc -I/usr/local/include -I. \
  -I$GOPATH/src \
  -I$GOPATH/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis \
  --go_out=plugins=grpc:. \
  msg_newest.proto

protoc -I/usr/local/include -I. \
  -I$GOPATH/src \
  -I$GOPATH/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis \
  --grpc-gateway_out=logtostderr=true:. \
  msg_newest.proto

PythonのgRPC

pip install grpcio==1.4.0
pip install grpcio-tools==1.4.0
pip install protobuf

python -m grpc.tools.protoc --python_out=pbdata --grpc_python_out=pbdata -I . msg.proto

指定してください再現:http://www.lenggirl.com/cap/grpc.html

おすすめ

転載: www.cnblogs.com/nima/p/11750938.html