1. gRPCとはGoogle によって開発された gRPC は、言語やプラットフォームに依存しないオープンソースのリモート呼び出しプロセスです。 リモートプロセス呼び出しとは何ですか?簡単に言えば、ローカル アプリケーションを他のアプリケーションに公開する方法です。 gRPC は、分散された異種アプリケーションの接続、呼び出し、操作、デバッグに使用できるプロセス間通信テクノロジです。これは、RPC アプリケーションの特性、つまりローカル関数の呼び出しに似ています。 2. 特徴gRPC は、モバイルと HTTP/2 向けに設計された高性能なオープンソースの汎用 RPC フレームワークであり、双方向ストリーミング、フロー制御、ヘッダー圧縮、単一の TCP 接続でのリクエストの多重化などの機能を実現します。これらの機能により、モバイル デバイスでのパフォーマンスが向上し、電力とスペースが節約されます。 gRPC では、クライアント アプリケーションは、ローカル オブジェクトを呼び出すのと同じように、別のマシン上のサーバー アプリケーションのメソッドを直接呼び出すことができるため、分散アプリケーションやサービスを簡単に作成できます。 gRPC はデフォルトでプロトコル バッファを使用します。これは、Google がオープンソース化した成熟した構造化データ シリアル化メカニズムです。その機能は XML や JSON に似ていますが、パフォーマンスと効率性に優れたバイナリ形式です (欠点: 読みやすさが悪い)。 3. gRPCとRESTの違いこれは REST API 通信に似ており、通信媒体として HTTP 接続を使用して、アプリケーションの機能を他のアプリケーションに効果的に公開できます。 REST と gRPC は多少似ていますが、動作方法には違いがあることに注意する必要があります。 gRPCはHTTP/2プロトコルを使用し、RESTはHTTP 1.1を使用します。 gRPCは、REST APIで一般的に使用される標準のJSONデータ形式ではなく、プロトコルバッファデータ形式を使用します。 gRPC を使用すると、必要に応じて、サーバー側ストリーミング、クライアント側ストリーミング、さらには双方向ストリーミングなどの HTTP/2 機能を活用できます。 4. GoでgRPCサーバーを構築するまず、Go で非常にシンプルな gRPC サーバーを定義します。シンプルなサーバーが稼働したら、そのサーバーと対話できる gRPC クライアントの作成に進むことができます。 gRPC はマイクロサービスを実装し、大規模なプロジェクトを複数の小規模で独立したビジネス モジュール、つまりサービスに分割できます。サービス間の RPC 呼び出しには効率的な protobuf プロトコルが使用されます。 gRPC はデフォルトでプロトコル バッファを使用します。これは、Google がオープンソース化した成熟した構造化データ シリアル化メカニズムです (もちろん、JSON などの他のデータ形式も使用できます)。 proto ファイルを使用して gRPC サービスを作成し、メッセージ タイプを使用してメソッド パラメーターと戻り値の型を定義できます。 golang の proto ツールキットをインストールします。 go get -u github .com / golang / protobuf / proto gRPC の設定を開始する前に、Protocol Buffers v3 がインストールされていることを確認してください。 go get - u github .com / golang / protobuf / protoc - gen - go Go に gRPC をインストールします。 google .golang .org / grpc にアクセスしてください 次に、TCP 接続のポートをリッスンするサーバーを作成します。主な機能は次のとおりです。 パッケージメイン 次に、golang.org から公式の gRPC パッケージをインポートして、新しい gRPC サーバーを作成し、公開するエンドポイントを登録して、上で定義した既存の TCP 接続を介してサービスを提供します。 パッケージメイン これは Go で書かれた非常に基本的な gRPC サーバーであり、その機能は現時点では非常に制限されています。 5. 機能を追加する次に、前のサーバーと対話するクライアントを記述し、client.proto ファイルを作成します。 構文= "proto3" ; //プロトコルはproto3です この .proto ファイルは、任意の言語で記述された任意の gRPC クライアントから呼び出すことができる単一の SayHello 関数を持つ ChatService を公開します。 これらの .proto 定義は通常、あらゆる形状やサイズのクライアント間で共有され、クライアントが独自のコードを生成して gRPC サーバーと通信できるようにします。 protoc ツールを使用して、Go 固有の gRPC コードを生成してみましょう。 $ protoc --go_out=plugins=grpc:chat チャット.proto これにより、生成されたコードが含まれる chat/chat.pb.go ファイルが生成され、コード内で簡単に呼び出すことができるようになります。次のように、server.go を更新して ChatService を登録しましょう。 パッケージメイン 次に、メッセージを受信し、メッセージの本文を読み取り、独自のメッセージを返す SayHello メソッドを定義する必要があります。 パッケージチャット gRPC サーバーのより高度な機能を定義する場合は、Server 構造体に基づいて新しいメソッドを定義し、その関数の名前を chat.proto ファイルに追加することで、アプリケーションが他の gRPC クライアントがアクセスできるものとして公開できるようになります。 これらの最終的な変更を行ったら、サーバーを実行してみましょう。 $ go サーバーを実行.go すばらしい!これで、マシンの localhost:8000 で、真新しい gRPC サーバーが稼働するようになりました。 6. Go で gRPC クライアントを構築する サーバーが起動したので、サーバーと対話できるシンプルなクライアントの構築方法を見てみましょう。 client.go ファイルを更新します。 パッケージメイン これを実行すると、次のように、クライアントがサーバーから完全な Hello メッセージを受信したことがわかります。 $ go クライアントを実行.go 新しい gRPC サーバーと通信できる非常にシンプルな gRPC クライアントの作成に成功しました。 インストールの問題go get google.golang.org/grpc のインストールでエラーが発生した場合は、次のようにします。 次のように置き換えます。
7. まとめこの記事では、Go でシンプルな gRPC クライアントとサーバーを構築する方法を学びました。私たちは、クライアントからの受信メッセージを受け入れ、それらのクライアントに応答を返す基本的なサーバーを構築しました。 |
>>: クラウド データ ウェアハウス アーキテクチャにおけるコントロール パネルの重要性
インターネットで利益を得たいなら、トラフィックなくしては成り立ちません。駅のような場所に、目立たない...
8月28日、Huawei Cloud China Tourの成都ツアーが開催されました。 Huawe...
Baidu Index は、Baidu 検索エンジンの名前で検索インデックス製品です。多くの場合、ウ...
クラスターサイト開発モデルを採用している人材募集サイトの場合、省都のランキングは長い間あまり理想的で...
後で知ったのですが、今夜はとても力強い共有セッションを聞いて、とても価値があったと感じました。これは...
最近、エマーはLexun Mobile Expert Forumの編集部の同僚に簡単なSEOスキルの...
キーワードは、ウェブサイトの SEO プロセスにおいて最も重要な要素の 1 つです。適切なキーワード...
イベント マーケティングに関しては、新聞やオンライン広告に注目している人を含め、誰もがそれを非常に明...
今夜、湖南衛星テレビは、復活を期待しているテレビシリーズ「玄元剣」を放送します。このテレビシリーズは...
greengeeks は、 23 日から 26 日まで、感謝祭とブラック フライデーの大きなプロモー...
SUSEは4月15日、 openEuler Developer Day 2022において、 open...
電力会社E.ONがガス事業を新会社として分社化したとき、ユニパーの最高情報責任者は近代化の取り組みを...
ウェブサイト構築のプロセスにおいて、ウェブサイト構造の配置は非常に重要です。あなたが新人ウェブマスタ...
目次1CUVIP は一般的にどのように理解されていますか? 2実際のCUVIPはどのようになっている...
バイラルな人気において、ビデオは情報を伝え、最も強い影響を与える最も強力な媒体です。ビデオ マーケテ...