Grpc

概要

  • gRPCは2015年にGoogleによって、マイクロサービスと相互作用が必要な他のシステム間のデータ伝送を高速化するためにRPCプロトコルを元に作成されたプロトコル
  • gRPC の g は Google の g
graph LR
  subgraph CService[C++ Service]
    CgRPCS[gRPC Server]
  end

  subgraph RService[Ruby Client]
    RgRPCS[gRPC Stub]
  end
  
  subgraph AService[Android Client]
    AgRPCS[gRPC Stub]
  end

  CgRPCS -.-> |Proto Response| AgRPCS
  CgRPCS -.-> |Proto Response| RgRPCS
  RgRPCS -.-> |Proto Request| CgRPCS
  AgRPCS -.-> |Proto Request| CgRPCS

特徴

  • ProtocolBuffersというシリアライズ方式を用いて、高速な通信を実現できる
  • 環境にもよるが、RESTに比べて大体2~3倍ほど高速
  • 対応言語も幅広くGo、C++、Java、Python、Ruby、Node.js、PHPなど一通りの言語に対応している
特徴gRPCREST API
HTTP ProtcolHTTP 2HTTP 1.1
Messaging FormatProtocol Buffers(Protocol Buffers)JSON, XML, others
Code GenerationNative Protocol CompilerThird-Party Solutions Like Swagger
Communication一方通行,
双方向,
ストリーミング(リアルタイム)
Client Request Only

参考

公式