Intro To gRPC
-
gRPC = gRPC Remote Procedure Call
-
Client can directly call a procedure on server as if it's local one.
-
Uses protocol buffers as:
-
Interface Definition Language (IDL)
-
Message interchange format
-
Why
-
Define service once => generate servers, clients
-
The complexity of communication between different languages and environments is handled by gRPC
-
+ All Protocol Buffers Advantages
-
+ All HTTP 2.0 Advantages
-
Deadlines/Timeouts
-
Bi-Directional Streaming
gRPC vs REST
gRPC | REST | |
---|---|---|
Serialization Format | Protocol Buffers | JSON |
Transfer Protocol |
HTTP 2.0 | HTTP 1.1 |
Streaming | Supported | Not Supported |
Type | Strongly | Weakly |
How?
service ServiceName {
rpc procedureName (commaSeparatedParameters) returns (returnType) {}
}
Server
Client
Implements the methods declared by the service and runs a gRPC server to handle client calls.
Has a local object known as "stub" that implements the same methods as the service.
The client can then just call those methods on the local object.
proto compile
Agenda
- What is gRPC
- Why gRPC
- gRPC vs REST
- How to define a service
- Hands on
intro to gRPC
By Muhammad Magdi
intro to gRPC
- 285