19
A high performance, open-source universal RPC framework

Grpc present

Embed Size (px)

Citation preview

Page 1: Grpc present

A high performance, open-source

universal RPC framework

Page 2: Grpc present

WHAT IS RPC

• for distributed computing• coded as (local) procedure call• form of client–server

Page 3: Grpc present

PROBLEM- remote calls can fail - unpredictable network problems

Page 4: Grpc present

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

Page 5: Grpc present

STANDARDLet different clients access servers - platforms, - languages, - projects

Page 6: Grpc present

STANDARD -INTERFACE DEFINITION

LANGUAGEInterface Definition Language- define interface- use to generate interface code for

- client- server

Page 7: Grpc present

GRPCSimple service definition

Page 8: Grpc present

GRPCWorks across languages and platforms

Page 9: Grpc present

GRPCStart quickly and scale

Page 10: Grpc present

GRPCBi-directional streaming and integrated auth

Page 11: Grpc present

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 ...

Page 12: Grpc present
Page 13: Grpc present

USE CASES

Page 14: Grpc present

ARCHITECTURE

Page 15: Grpc present

WITH DNS

Page 16: Grpc present

LOAD BALANCING

Page 17: Grpc present

CONCLUSION

gRPC Advantages- Interface Orientation- Efficiency- Support extending

Page 18: Grpc present

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)

Page 19: Grpc present