by BehindJava
What is a Microservice and Microservices architecture and Why is it required
In this tutorial we are going to learn about Microservices and its implementation in detail.
Microservices
An architectural style that structures an application as a collection of services that are
- Highly maintainable and testable.
- Loosely coupled.
- Independently deployable.
- Organized around business capabilities.
- Owned by a small team.
The microservice architecture enables the rapid, frequent and reliable delivery of large, complex applications. It also enables an organization to evolve its technology stack.
Why?
Microservices architecture helps in structuring the application as a set of loosely coupled, collaborating services. This approach corresponds to the Y-axis of the Scale Cube. Each service is:
- Highly maintainable and testable - enables rapid and frequent development and deployment.
- Loosely coupled with other services - enables a team to work independently the majority of time on their service(s) without being impacted by changes to other services and without affecting other services.
- Independently deployable - enables a team to deploy their service without having to coordinate with other teams.
- Capable of being developed by a small team - essential for high productivity by avoiding the high communication head of large teams.
Services communicate using either synchronous protocols such as HTTP/REST or asynchronous protocols such as AMQP. Services can be developed and deployed independently of one another. Each service has its own database in order to be decoupled from other services. Data consistency between services is maintained using the Saga pattern.
Table of Contents
- Spring cloud Netflix Eureka Discovery Service
- Eureka Discovery Service as a Eureka Server in Spring Boot
- Eureka Discovery Service as a Eureka Client in Spring Boot
- Zuul API Gateway
- Spring Cloud API Gateway
- Create a Spring Cloud API Gateway in the Spring Boot
- Scale Up a Microservice into multiple instances to check Load Balancer
- Spring Cloud Config Server and its significance
- Spring Cloud Config Server Configuration
- Create a private GitHub repository
- Naming property files in the Spring Cloud Config server
- Config Server to Access a private GitHub repository
- Configure a Micro service to a be a client of Spring Cloud Config Server
- Spring Cloud Bus and why is it required in Microservices
- Configure Spring Cloud Bus on Spring Cloud Config Server
- Download, Install and Change Password for Rabbit MQ
- Configure Rabbit MQ in Spring Boot Application