grpc - go micro...grpc over rest make streaming highly possible machine readable (not meant for...

14
gRPC - Go Micro Imre Nagi

Upload: others

Post on 05-Apr-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for browser) Lesser Boilerplate code (Code generator for 8 languages) Supports types and

gRPC - Go MicroImre Nagi

Page 2: gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for browser) Lesser Boilerplate code (Code generator for 8 languages) Supports types and
Page 3: gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for browser) Lesser Boilerplate code (Code generator for 8 languages) Supports types and
Page 4: gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for browser) Lesser Boilerplate code (Code generator for 8 languages) Supports types and

gRPC stands for gRPC Remote Procedure Call

A high performance, general purpose, feature rich RPC framework

HTTP/2.0 and mobile first

Open source!

Page 5: gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for browser) Lesser Boilerplate code (Code generator for 8 languages) Supports types and

gRPC Over Rest

● Make streaming highly possible

● Machine Readable (not meant for browser)

● Lesser Boilerplate code (Code generator for 8 languages)

● Supports types and Validations: Unlike json , we can specify field types and add

validations for the same in the .proto file.

Page 6: gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for browser) Lesser Boilerplate code (Code generator for 8 languages) Supports types and
Page 7: gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for browser) Lesser Boilerplate code (Code generator for 8 languages) Supports types and

Go MicroGo Micro abstracts away the details of distributed systems. Here are the main features.

● Service Discovery - Automatic service registration and name resolution● Load Balancing - Client side load balancing built on discovery● Message Encoding - Dynamic encoding based on content-type with protobuf

and json support● Sync Streaming - RPC based communication with support for bidirectional

streaming● Async Messaging - Native PubSub messaging built in for event driven

architectures

Page 8: gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for browser) Lesser Boilerplate code (Code generator for 8 languages) Supports types and

ConsulService Registry

Flight Service

Hotel Service

Train Service

Issuance Service

Search Service

Payment Service

User Service

RefundService

Simple MicroservicesDeployed in Multiple VMs

Async Message Passing

Async Message Passing

Async Message PassingAsync Message

Passing

*VM icon taken from GCP Icon

Go micro Kafka Plugins

Page 9: gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for browser) Lesser Boilerplate code (Code generator for 8 languages) Supports types and

KubernetesService Registry

Flight Service

Hotel Service

Train Service

Issuance Service

Search Service

Payment Service

User Service

RefundService

Simple MicroservicesDeployed in Kubernetes

Async Message Passing

Async Message Passing

Async Message PassingAsync Message

Passing

*VM icon taken from GCP Icon

Go micro Kafka Plugins

Page 10: gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for browser) Lesser Boilerplate code (Code generator for 8 languages) Supports types and

Kubernetes EngineService Registry

Flight Service

Hotel Service

Train Service

Issuance Service

Search Service

Payment Service

User Service

RefundService

Simple MicroservicesDeployed in Google Cloud

Async Message Passing

Async Message Passing

Async Message PassingAsync Message

Passing

*VM icon taken from GCP Icon

Google Cloud Pub/Sub

Go micro Pub/Sub Plugins

Page 11: gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for browser) Lesser Boilerplate code (Code generator for 8 languages) Supports types and
Page 12: gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for browser) Lesser Boilerplate code (Code generator for 8 languages) Supports types and
Page 13: gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for browser) Lesser Boilerplate code (Code generator for 8 languages) Supports types and
Page 14: gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for browser) Lesser Boilerplate code (Code generator for 8 languages) Supports types and