grpc - go micro...grpc over rest make streaming highly possible machine readable (not meant for...
TRANSCRIPT
gRPC - Go MicroImre Nagi
gRPC stands for gRPC Remote Procedure Call
A high performance, general purpose, feature rich RPC framework
HTTP/2.0 and mobile first
Open source!
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.
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
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
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
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