Linkerd supports configuring gRPC clients and servers, which can be used to introduce gRPC easily into your application. Using Linkerd to route gRPC requests enables resilient distributed communication, as well as support for structured data, bidirectional streaming, flow control, and robust, cross-platform client libraries provided by gRPC and Protocol Buffers.
The underlying transport used for gRPC is HTTP/2. Linkerd supports configuring
HTTP/2 enabled routers, which can also
be used to route gRPC requests. When gRPC clients send a request, they include
routing information in HTTP/2’s
:path pseudo-header. The path for a gRPC
request is prefixed with
/serviceName/methodName segments, and Linkerd can be
configured to read the value of that header and route requests accordingly,
using the Header Path Identifier. For more information on how Linkerd routes requests, see the Routing feature page.
Most gRPC language implementations require using TLS, and Linkerd supports configuring gRPC clients and servers with TLS, although it is not strictly required. For more information about setting up TLS, see the TLS feature page.
If you’d like to learn more about routing gRPC requests with Linkerd, check out Buoyant’s blog post on the topic: HTTP/2, gRPC and Linkerd, which provides a thorough introduction.