grpc present

Post on 07-Jan-2017

91 Views

Category:

Engineering

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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)

top related