RPC
Remote Procedure Call - call a method from a remote service and get the corresponding response.
Features:
- Code generation, serialisation, network communication
- Service discovery, load balancing and circuit breaker
Aspect | HTTP-Oriented Protocol | REST API | gRPC | Thrift |
---|---|---|---|---|
Transport Layer | HTTP/HTTPS | HTTP/HTTPS | HTTP/2 | Flexible (HTTP, TCP) |
Data Format | JSON, XML | JSON, XML | Protobuf (binary) | Binary, JSON |
Schema | Optional | Optional | Required (Protobuf) | Required (IDL) |
Streaming Support | No | No | Yes (bidirectional) | Limited |
Ease of Use | High | High | Moderate | Moderate |
Performance | Moderate | Moderate | High (binary) | High (binary) |
Language Support | Broad | Broad | Broad | Very Broad |
Best Use Case | General APIs | Public APIs | Microservices | Cross-language RPC |