Skip to Content
gRPC:アップ・アンド・ランニング
book

gRPC:アップ・アンド・ランニング

by Kasun Indrasiri, Danesh Kuruppu
March 2025
Intermediate to advanced
204 pages
2h 54m
Japanese
O'Reilly Media, Inc.
Book available
Content preview from gRPC:アップ・アンド・ランニング

第3章 gRPC通信パターン

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

最初の 2、3 章では、gRPC のプロセス間通信テクニ ックの基礎を学び、簡単な gRPC ベースのアプリ ケーションを構築する実習を行った。これまでのところ、サービス・インタフェースを定義し、サービスを実装し、gRPCサーバを動作させ、gRPCクライアント・アプリケーションを通してリモートからサービス演算子を呼び出すということを行ってきた。クライアント、サーバ間の通信パターンは単純なリクエスト/レスポンス・スタイルで、1回のリクエストに対して1回のレスポンスを返す。しかし、gRPCでは、単純なリクエスト/レスポンス・パターン以外のさまざまなプロセス間通信パターン(またはRPCスタイル)を利用することができる。

この章では、gRPCベースのアプリケーションで使用される4つの基本的な通信パターン、単項RPC(単純RPC)、サーバ側ストリーミング、クライアント側ストリーミング、双方向ストリーミングについて説明する。それぞれのパターンを紹介するために、いくつかの実際のユースケースを使い、gRPC IDLを使ってサービス定義を定義し、Goを使ってサービス側とクライアント側の両方を実装する。

GoとJavaのコードサンプル

一貫性を保つため、この章のコード・サンプルはすべてGoを使って書かれている。しかし、もしあなたがJava開発者なら、本書のソースコードリポジトリで、同じユースケースの完全なJavaコードサンプルを発見することもできる。

シンプルRPC(ユナリーRPC)

gRPCの通信パターンについて、最も単純なRPCスタイルである単純RPCunary RPCとも呼ばれる)から話を始めよう。単純RPCでは、クライアントがサーバのリモート関数を呼び出すとき、クライアントはサーバに単一のリクエストを送信し、ステータスの詳細と末尾のメタデータとともに送信される単一のレスポンスを取得する。実際、これは第1章と第2章で学んだ通信パターンと全く同じである。実際のユースケースを使って、単純なRPCパターンをさらに理解してみよう。

gRPCをベースとしたオンライン・リテール・アプリケーション用のOrderManagement サービスを構築する必要があるとする。このサービスの一部として実装しなければならないメソッドの1つはgetOrder メソッドであり、クライアントは注文IDを提供することで既存の注文を取得することができる。図3-1に示すように、クライアントはオーダーIDを持つ単一のリクエストを送信し、サービスはオーダー情報を含む単一のレスポンスで応答する。したがって、これは単純なRPCパターンに従っている。

Simple/unary RPC
図3-1. 単純/単一RPC

では、このパターンの実装に進もう。最初のステップは、getOrder メソッドでOrderManagement サービスのサービス定義を作成することである。例3-1のコードスニペットに示すように、プロトコルバッファを使用してサービス定義を定義することができる。getOrder リモートメソッドは、単一のリクエストオーダーIDを受け取り、単一のレスポンスで応答し、 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

ネットワークとKubernetes

ネットワークとKubernetes

James Strong, Vallery Lancey
アルゴリズムクイックリファレンス 第2版

アルゴリズムクイックリファレンス 第2版

George T. Heineman, Gary Pollice, Stanley Selkow, 黒川 利明, 黒川 洋
Kubernetesベストプラクティス第2版

Kubernetesベストプラクティス第2版

Brendan Burns, Eddie Villalba, Dave Strebel, Lachlan Evenson

Publisher Resources

ISBN: 9798341626706Supplemental Content