Book Image

gRPC Go for Professionals

By : Clément Jean
Book Image

gRPC Go for Professionals

By: Clément Jean

Overview of this book

In recent years, the popularity of microservice architecture has surged, bringing forth a new set of requirements. Among these, efficient communication between the different services takes center stage, and that's where gRPC shines. This book will take you through creating gRPC servers and clients in an efficient, secure, and scalable way. However, communication is just one aspect of microservices, so this book goes beyond that to show you how to deploy your application on Kubernetes and configure other tools that are needed for making your application more resilient. With these tools at your disposal, you’ll be ready to get started with using gRPC in a microservice architecture. In gRPC Go for Professionals, you'll explore core concepts such as message transmission and the role of Protobuf in serialization and deserialization. Through a step-by-step implementation of a TODO list API, you’ll see the different features of gRPC in action. You’ll then learn different approaches for testing your services and debugging your API endpoints. Finally, you’ll get to grips with deploying the application services via Docker images and Kubernetes.
Table of Contents (13 chapters)
10
Epilogue

Debugging

No matter how well we unit test our services, we are humans and humans make mistakes. At some point, we are going to need to debug a service. In this section, we are going to see how to approach debugging. We are first going to enable server reflection, which will let us call our service simply from the command line. After that, we will use Wireshark to inspect data on the wire. Finally, because the error might not always come directly from our code, we will see how we can take a look at the gRPC logs.

Server reflection

Server reflection is an interesting feature when it comes to exposing the API to external clients. This is because it lets the server describe itself. In other words, the server knows all the services registered and the message definition. If a client asks for more information, the server, through reflection, can list all the services, messages, and so on. With that, the client does not even need to have a copy of the proto file. Now, this is not only...