Microservices
Microservices are small, autonomous services that work together and The Microservices Architectural Style is an approach to develop a Single application as a Suite of small Services, each running in its own process and communicating with light weight mechanism.
Some of the benefits of Microservices application compared to Monolithic applications are:
· Easy to understand
· No tight coupling between components
· New components can be easily built and deployed
· Improve Fault tolerance and its isolation
· Eliminates long term dependency on a particular tech stack
· Individual components can be auto-scaled
· Overall application access unaffected on failure of a component/service
To make an application with the microservices architecture, some of the key components required are
- Service Discovery: For which I used Eureka. There is another service available for this purpose named Apache Zookeeper.
- Client side load balancing: I used Ribbon.
- Fault Tolerance: If a service fails and need to redirect to another service, we have used Hystrix.
- API Gateway: As a wrapper for all the client side services, so as to avoid exposing the hosted address and port numbers of the services for which I used Zuul.