Upload
pham-hai-anh
View
87
Download
3
Embed Size (px)
Citation preview
A high performance, open-source
universal RPC framework
WHAT IS RPC
• for distributed computing• coded as (local) procedure call• form of client–server
PROBLEM- remote calls can fail - unpredictable network problems
RUNTIME FLOWclient —> client stub (local) client stub request —> server• packs parameters -> message • send the messageserver process• unpack• call server procedure
server response —> client stubclient stub return —> client
STANDARDLet different clients access servers - platforms, - languages, - projects
STANDARD -INTERFACE DEFINITION
LANGUAGEInterface Definition Language- define interface- use to generate interface code for
- client- server
GRPCSimple service definition
GRPCWorks across languages and platforms
GRPCStart quickly and scale
GRPCBi-directional streaming and integrated auth
TECHNICAL INFO● Based on HTTP/2 today (multiplexed, works with the Internet)● Payload agnostic (implement protobuf)● Streaming & Flow-Controlled● Designed for harsh environments
● timeout, ● load-balancing,● cancellation
● Support in 10 languages & first class mobile support● Layered & Pluggable
● monitoring, ● auth, ● naming, ● load balancing ...
USE CASES
ARCHITECTURE
WITH DNS
LOAD BALANCING
CONCLUSION
gRPC Advantages- Interface Orientation- Efficiency- Support extending
REFERENCES
- [Protobuf language](https://developers.google.com/protocol-buffers/docs/proto3)- [Go protobuf API ref](https://godoc.org/github.com/golang/protobuf/proto)- [Go gen code guide](https://developers.google.com/protocol-buffers/docs/reference/go-generated)- [Encoding Reference](https://developers.google.com/protocol-buffers/docs/encoding)