Closed6

モノレポの関連情報をまとめる

Sadayoshi Tada / taddySadayoshi Tada / taddy

9月の連休中にモノレポの勉強のために公開されている記事やツールを見てメモをつけていく

Sadayoshi Tada / taddySadayoshi Tada / taddy

マイクロサービスの文脈ででてくるgRPCを学ぶ

gRPCで扱う技術

  • HTTP/2 : gRPCではHTTP/2のPOSTリクエストとそのレスポンスを使って実現している
    • HTTP/2ではクライアントは呼び出す関数の情報としてリクエストのパス煮含め、呼び出す関数の引数はリクエストボディに含める、レスポンスはレスポンスボディに戻り地を含める
  • Protocol Buffers : 呼び出した関数の引数・戻り値の情報は、そのままプレーンテキストで書くのではなく、Protocol Buffersというシリアライズ方式を用いて変換した内容をリクエスト・レスポンスボディに含めること

Protocol Buffers

そもそも Protocol Buffers がなにそれ状態だったからかんたんに理解するう

プロトコル バッファは、データ構造スキーマとプログラミング インターフェースを定義するための、言語中立でプラットフォームに依存しないシンプルなインターフェース定義言語(IDL)です。プロトコル バッファは、バイナリとテキストの両方の送信形式をサポートし、さまざまなプラットフォーム上のさまざまなワイヤ プロトコルで動作します

https://cloud.google.com/apis/design/proto3?hl=ja

Protocol BuffersはGoogleではデータの保存や構造化されたあらゆる種類の情報の交換で用いられている。Protocol Buffersサーバはカスタマイズされた遠隔手続き呼出し (RPC) に基づいており、Googleにおける全てのマシン間通信で実際に用いられている[3]。
データ構造およびサービスはプロトコル定義ファイル (Proto Definition file (.proto)) でデザインされ、protocプログラムによりコンパイルされる。このコンパイル作業により目的のサービスに適合するコードが生成される。例として、「example.proto」は「example.pb.cc」および「example.pb.h」を生成し、この中には「example.proto」で定義されたメッセージおよびサービスのためのC++クラスが定義されている。

https://ja.wikipedia.org/wiki/Protocol_Buffers

勉強で参考にしたもの

https://zenn.dev/hsaki/books/golang-grpc-starting/

Sadayoshi Tada / taddySadayoshi Tada / taddy

protoファイルでProcedureを定義する

手続きの定義をgRPCではprotoファイルを使う

  • Protocol Buffer Languageのバージョン指定: proto2 , proto3
  • パッケージ
  • サービスとメソッドの定義: gRPCで呼び出すProcedure(関数)をメソッド、そのメソッドをいくつかまとめたものをサービスと呼ぶ
  • いろいろな型がある
    • Timestamp
    • Empty
    • google.protobuf
    • int
    • bool
    • enum

勉強で参考にしたもの

https://zenn.dev/hsaki/books/golang-grpc-starting
https://engineering.mercari.com/blog/entry/20210921-ca19c9f371/

このスクラップは2023/09/03にクローズされました