grpcコースをやってみる〜その1〜
今回やってみるコース
モチベーション
仕事で触れる機会があるが仕組みが何となくしかわかっていないため手を動かしながらやってみる
grpcとは
- クライアントがリモートサーバの関数を呼び出す
- 例えばRustで記述されたサーバの関数をGoのローカルから呼び出すことが可能
- APIとデータ構造はProtocol Buffer Compilerによって自動生成される
- 様々な異なる言語をサポートしている
どのように動くか
- protbufを使用しデータ構造とAPIの定義を作成する
- 作成した定義を元にサーバとクライアントのコードを自動生成する
- Protocol Buffer Compilerによって、選択した言語のコードを簡単に自動生成する事が可能
- 最後にサーバとクライアント側で呼び出し側と呼び出し元の実装をする
なぜHTTP JSON API ではなくGRPCを利用するのか
高パフォーマンスである
Strong API Contract
サーバとクライアントは同じprotを利用するため、データ構造などを同じものを利用できる(というか強制される)
コードの自動生成
- サービス開発をより早くしてくれる
- クライアント・サーバで利用するコードはgrpcによって自動生成されたコードを利用するだけなので、開発者はロジックに集中できる
4タイプの通信方法
grpc gateway