Create a microservices application architecture with Spring Boot and Spring Cloud - Part 1 - Microservices architecture overview

Introduction

Have you tried to wrap your head around the microservices architecture concept only to read posts after posts about what it is and the benefits of it just to be even more confused?  I have. Plenty of times. This is why I’m going to write up a series of posts for my site specifically for microservices BUT this is not “yet another post about microservices”! What’s different?

I’m a visual type of person that likes to be hands-on when learning so I need something I can play with.  I’m going to show you HOW to actually implement a very basic microservices architecture that you can throw up on your local environment so you can see how the architecture works such as the data flow between services.

The Architecture

Below, I have diagramed out the services that we will create with Spring Boot and the data flow between each service.

Our microservices architecture will have a total of 5 services.

  • Config server

    • This service provides a central location for config files for all of the other services.  This is beneficial because all common configurations for a type of service can be stored centrally and retrieved.

  • Proxy service and API gateway

    • This service provides a general access point to the underlying business services such as the General and Minnesota services.

  • Discovery service (Eureka)

    • This service will locate other services for the purpose of load balancing and failover of mid-tier services.

  • Business domain services (General and Minnesota)

    • These 2 business domain services will have our business logic in it.  For the General service, we’ll put in simple endpoints that return us a text response and then for the Minnesota service, we’ll put in an endpoint that will return a response specific to that service.

Each of the above points will be flushed out in detail in subsequent posts, so please refer to those for more in-depth information.

Prerequisites

Tools

  • Eclipse IDE

    • You can use any IDE that you’re comfortable with, but this tutorial will be using Eclipse.

Tutorial Series

Part 1 - Microservices architecture overview

Part 2 - Config server

Part 3 - Discovery service

Part 4 - Business domain services (Minnesota microservice)

Part 5 - Business domain services (General microservice)

Part 6 - Proxy service & API gateway

Part 7 - Wrap-up

Code Repositories

Config server

Discovery service

Minnesota microservice

General microservice

Proxy/API gateway


Next tutorial part...

Create a microservices application architecture with Spring Boot and Spring Cloud - Part 2 - Config server