<<Under Construction>>
This post attempts to cover the most popular existing Microservices Frameworks. Well, there are few characteristics you need to think over while choosing MS frameworks:
- Support for RESTful services
- Support for Container-Based
- Support for Better Security
- Support for Better Observability - You can check here - https://arunmanglick-ms.blogspot.com/2021/01/microservices-designing-concepts.html
Few Frameworks:
- Netflix OSS (Open S/w Solution)
- Spring Boot
- Istio
- Dropwizard
- Vert.x
- Lagom
1). Netflix OSS
This is a framework + library that is used to build microservices architecture.
Below are key essentials to architect microservices:
This framework provides all the essentials required to build microservices.
#
|
Requirements
|
Component
|
Comments
|
1
|
Service Registration & Discovery
|
Eureka Server & Client
|
Each microservice should register itself by providing - Host, NodeName, Service Metadata etc.
|
2
|
Latency & Fault Tolerance Library
|
Hystrix
|
Hystrix behaves like a Circuit Breaker. For e.g. if A ->B ->C->D and assume D breaks then C should not cascade failure to B. By having Hstrix at 'C 'microservice, failures are not cascaded.
|
3
|
Gateway API, Routing, Filtering
|
Zuul
|
Supports Dynamic Routing, Resiliency, Security and Monitoring
|
4
|
Monitoring
|
Hystrix Dashboard
|
|
5
|
Client-Side Load Balancer
|
Ribbon
|
Ribbon - IPC (Inter Process Communication) Library. Uses RoundRobinRule, AvailabilityFiteringRule, WeightedResponseTimeRule Algorithm. Ribbon - Also helps to determine if servers are up and running.
|
6
|
Declarative REST Client
|
Feign
|
This helps to create a stub to call microservice without writing full set of code. Annotate the interface with @FeignClient
|
7
|
NA
|
NA
|
NA
|
8
|
NA
|
NA
|
NA
|
9
|
NA
|
NA
|
NA
|
Note: Almost every Microservice, has Ribbon, Hystrix, and Feign.
2). Spring Boot & Spring Cloud:
Most popular Microservices development framework for Java Developers. Spring Cloud came after Boot and both together provide a great development environment.
Importantly, Spring Cloud provides Netflix OSS integrations for Spring Boot apps - Includes Discovery with Eureka, Circuit Breaker with Hystrix, Routing and API Gateway with Zuul and Client-Side Loadbalancing with Ribbon.
Rest Frameworks - Not covered here. :)
Hope this helps.
No comments:
Post a Comment