Sign In Start Free Trial
Account

Add to playlist

Create a Playlist

Modal Close icon
You need to login to use this feature.
  • Book Overview & Buying Building Distributed Applications in Gin
  • Table Of Contents Toc
  • Feedback & Rating feedback
Building Distributed Applications in Gin

Building Distributed Applications in Gin

By : Mohamed Labouardy
4.4 (14)
close
close
Building Distributed Applications in Gin

Building Distributed Applications in Gin

4.4 (14)
By: Mohamed Labouardy

Overview of this book

Gin is a high-performance HTTP web framework used to build web applications and microservices in Go. This book is designed to teach you the ins and outs of the Gin framework with the help of practical examples. You’ll start by exploring the basics of the Gin framework, before progressing to build a real-world RESTful API. Along the way, you’ll learn how to write custom middleware and understand the routing mechanism, as well as how to bind user data and validate incoming HTTP requests. The book also demonstrates how to store and retrieve data at scale with a NoSQL database such as MongoDB, and how to implement a caching layer with Redis. Next, you’ll understand how to secure and test your API endpoints with authentication protocols such as OAuth 2 and JWT. Later chapters will guide you through rendering HTML templates on the server-side and building a frontend application with the React web framework to consume API responses. Finally, you’ll deploy your application on Amazon Web Services (AWS) and learn how to automate the deployment process with a continuous integration and continuous delivery (CI/CD) pipeline. By the end of this Gin book, you will be able to design, build, and deploy a production-ready distributed application from scratch using the Gin framework.
Table of Contents (16 chapters)
close
close
1
Section 1: Inside the Gin Framework
3
Section 2: Distributed Microservices
9
Section 3: Beyond the Basics

Scaling horizontally with Docker replicas

So far, you have learned how to build a Producer/Consumer architecture with the Gin framework and RabbitMQ. In this section, we'll cover how to scale the consumer component so that we can split the incoming workload across multiple consumers.

You can achieve this by building a Docker image of the consumer project and building multiple containers based on that image. The Docker image is immutable, which guarantees the same environment each time a container is based on the image that is run.

The following schema illustrates how multiple consumers/workers are used:

Figure 6.18 – Scaling multiple workers with Docker

To create a Docker image, we need to define a Dockerfile – a blueprint that contains all the instructions to run the consumer project. Create a Dockerfile in your worker/consumer directory with the following content:

FROM golang:1.16
WORKDIR /go/src/github.com/worker
COPY main.go...

Unlock full access

Continue reading for free

A Packt free trial gives you instant online access to our library of over 7000 practical eBooks and videos, constantly updated with the latest in tech

Create a Note

Modal Close icon
You need to login to use this feature.
notes
bookmark search playlist download font-size

Change the font size

margin-width

Change margin width

day-mode

Change background colour

Close icon Search
Country selected

Close icon Your notes and bookmarks

Delete Bookmark

Modal Close icon
Are you sure you want to delete it?
Cancel
Yes, Delete

Delete Note

Modal Close icon
Are you sure you want to delete it?
Cancel
Yes, Delete

Edit Note

Modal Close icon
Write a note (max 255 characters)
Cancel
Update Note

Confirmation

Modal Close icon
claim successful

Buy this book with your credits?

Modal Close icon
Are you sure you want to buy this book with one of your credits?
Close
YES, BUY