Introduction to RPC
•RPC aka Remote Procedure Calls - are just like functions.
•These functions are executed on some remote system and
hence the name.
•It follows a request - response model.
•A request is initiated from the client - this request is a
function call with certain parameters and then, the server
returns a response.
•Real world application - to construct distributed, scalable,
client - server based applications.
Introduction to gRPC
gRPC (Google Remote Procedure Calls[2]) is a cross-
platform open source high performance Remote Procedure
Call (RPC) framework. gRPC was initially created by Google,
which has used a single general-purpose RPC infrastructure
called Stubby to connect the large number of microservices
running within and across its data centers for over a
decade[when?]. In March 2015, Google decided to build the
next version of Stubby and make it open source. The result
was gRPC, which is now used in many organizations outside
of Google to power use cases from microservices to the “last
mile” of computing (mobile, web, and Internet of Things).
Introduction to gRPC
It uses HTTP/2 for transport, Protocol Buffers as the interface
description language, and provides features such as
authentication, bidirectional streaming and flow control,
blocking or nonblocking bindings, and cancellation and
timeouts. It generates cross-platform client and server
bindings for many languages. Most common usage scenarios
include connecting services in a microservices style
architecture, or connecting mobile device clients to backend
services.[3]
gRPC's complex use of HTTP/2 makes it impossible to
implement a gRPC client in the browser, instead requiring a
proxy.
gRPC clients and servers can run and talk to each other in a variety of environments -
from servers inside Google to your own desktop - and can be written in any of gRPC’s
example, you can easily create a gRPC server in Java with clients in Go, Python, or Ruby. In
APIs will have gRPC versions of their interfaces, letting you easily build Google
How gRPC works ?
gRPC is a light-weight binary based RPC communication protocol brought out by
Google. gRPC uses binary as its core data format. In RESTful services, using
JSON, we would be sending a string over http. Strings contain bulky metadata
about its encoding format; about its length, its content format and various other bits
and pieces.
Benefits of gRPC
gRPC offers a refreshed take on the old RPC design method by making it interoperable, modern, and
efficient using such technologies as Protocol Buffers and HTTP/2. The following benefits make it a solid
candidate for replacing REST in some operations.
Lightweight messages. Depending on the type of call, gRPC-specific messages can be up to 30
Use of gRPC in industry
gRPC is a modern open source high performance Remote Procedure Call (RPC)
framework that can run in any environment. It can efficiently connect services in and
across data centers with pluggable support for load balancing, tracing, health checking
and authentication. It is also applicable in last mile of distributed computing to connect
devices, mobile applications and browsers to backend services.
A number of different organizations have adopted gRPC, such
as Uber,[7] Square, Netflix, IBM, CoreOS, Docker, CockroachDB, Cisco, J
uniper Networks,[8] Spotify,[9] Zalando,[10] Dropbox,[11] and Google as the
original developer.
Summary
gRPC is a modern open source high performance RPC framework that
can run in any environment. It can efficiently connect services in and
across data centers with pluggable support for load balancing, tracing,
health checking and authentication. It is also applicable in last mile of
distributed computing to connect devices, mobile applications and
browsers to backend services.
Cloud Native Computing Foundation is the new home for gRPC and its
existing ecosystem projects
(https://github.com/grpc and https://github.com/grpc-ecosystem)