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など一通りの言語に対応している
| 特徴 | gRPC | REST API |
|---|---|---|
| HTTP Protcol | HTTP 2 | HTTP 1.1 |
| Messaging Format | Protocol Buffers(Protocol Buffers) | JSON, XML, others |
| Code Generation | Native Protocol Compiler | Third-Party Solutions Like Swagger |
| Communication | 一方通行, 双方向, ストリーミング(リアルタイム) | Client Request Only |