Go言語でgRPCを学ぼう!-GreetWithDeadline API-

こんにちは。KOUKIです。

前回で、GreetEveryoneAPIを実装していましたので、今回はその続きから実装します。

前回

Go言語記事まとめ

前回の復習

前回の復習として、FindMaximumAPIを実装します。

まずは、protoファイルからですね。

protoファイルを変更したら忘れずにコンパイルしましょう。

続いて、Serverコードを実装します。

このAPIは、リクエストとして受け取った数値の最大値を取得できるAPIです。

続いて、Clientコードを作成しましょう。

Clientコードが実装できたら、Server -> Clientの順にプログラムを起動します。

GreetWithDeadlineAPI – protoファイルの作成 –

復習はここまでにして、本題に入りましょう。

gRPCでは、全てのClientコードで、Deadline(締め切り)の設定を推奨されています。

サーバーにリクエストを投げたら、「最大何秒待つか」の設定ができます。

参考

Deadlineのサンプルコードです。

GreetWithDeadline APIにDeadlineを組み込んでみましょう。

まずは、protoファイルを編集します。

protoファイルを書き換えたので、コンパイルをしましょう。

GreetWithDeadline API – Serverコードの作成 –

GreetWithDeadline API – Clientコードの作成 –

続いて、Clientコードを作成します。

GreetWithDeadline API – 動作確認 –

Server -> Clientの順にプログラムを実行してください。

1つ目のリクエストは5秒間のDeadlineを設けました。

その範囲内で処理が完了したため、Timeoutは発生しなかったようです。

一方、2つ目のリクエストは1秒間に設定したため、処理が完了せずにTimeoutになりました

このように、開発者が各Clientコード上でDeadlineを定めます。

参考 ~ gRPC Error ~

gRPCのエラーハンドリングの参考情報を載せておきます。

次回

次回もgRPCについて学習していきましょう。

コメントを残す