A Monolith application is a traditional software architecture where all the components of the application are tightly integrated and packaged together as a single unit. In a monolithic architecture, the entire application, including its user interface, business logic, and data access layer, is typically developed, deployed, and scaled as a single, indivisible unit.
1) Easy to develop
2) Total source code at one place
3) Easily We understand project functionality
4) Easy to test
1) Maintence is very difficult
2) If any change in code, whole project should be re-deployed
3) Single Point Of Failure
A microservice is a small, independent, and loosely coupled software component that is designed to perform a specific business function. In a microservices architecture, an application is built as a collection of these small and independently deployable services, each responsible for a distinct set of functionalities. Microservices communicate with each other through well-defined APIs, often using lightweight protocols like HTTP or messaging systems.
1) Funcationlity dividing into multiple apis
2) Faster Development
3) Easy Maintenence
4) Quick Releases
5) Highly Scalable
6) Bug Fixing Easy
7) Technology independence
8) if one microservice not working properly then it may not effect all others services
9) if the number of microservice increase the code never become complex
10) it is providing choice to learn new technologies in between the development
11)there is no need bigger size team in developing the microservice
1) microservice architechture includes complexity
2)Testing a microservices also becomes much more complex as compard to monloithi
3) Sometimes a minor changes becomes very difficult to implement
4)Deployement of a microservices application is also much more complex
5)Even Runtime environment needs very high configuration and tools such as AWS cloud, Google cloud, Azure Cloud etc..
6)Maintenance is also very complex and cost Effective. Multiple Log files, Admin UI(Actuator)
Spring Cloud Config
Spring Cloud Netflix
Eureka (Service Discovery)
Ribbon (Client-side Load Balancing)
Hystrix (Circuit Breaker)
Feign (Declarative REST Client)
Spring Cloud Gateway
Spring Cloud Sleuth
Spring Cloud Stream
Spring Cloud Security
Spring Cloud Data Flow
Spring Cloud Task
Spring Cloud Bus
Spring Cloud Cluster
Spring Cloud OpenFeign
Spring Cloud Vault
Spring Cloud Circuit Breaker (Part of Spring Cloud Commons)
Spring Cloud Contract
Spring Cloud Function
Spring Cloud Kubernetes
Spring Cloud LoadBalancer
Spring Cloud Connectors
Spring Cloud CircuitBreaker
Spring Cloud Function Adapter for Azure
Spring Cloud Function Adapter for AWS
Spring Cloud for Cloud Foundry
zipkin urlserver.port=8000
spring.datasource.driverClassName=com.mysql.jdbc.Driver
#spring.datasource.url=jdbc:mysql://localhost:3306/secondminiapp?useSSL=false&serverTimezone=UTC
spring.datasource.url=jdbc:mysql://localhost:3306/sbibankdb?allowPublicKeyRetrieval=true&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
# Jpa properties/ HB related properties
spring.jpa.show-sql=true
#spring.jpa.properties.hibernate.format_sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect
spring.boot.admin.client.url=http://localhost:1111
# Eureka Client Configuration
eureka.client.service-url.defaultZone=http://localhost:8761/eureka
management.endpoints.web.exposure.include=*
spring.application.name=SbiBank-UserRegistration
# API Gateway routes
# Route 1: Greet API
spring.cloud.gateway.routes[0].id=user-api
spring.cloud.gateway.routes[0].uri=lb://User-Api
spring.cloud.gateway.routes[0].predicates[0]=Path=/user
# API Gateway routes
# Route 2: Greet API
spring.cloud.gateway.routes[0].id=welcome-user-api
spring.cloud.gateway.routes[0].uri=lb://Welcome-User-Api
spring.cloud.gateway.routes[0].predicates[0]=Path=/welcomeuser
# API Gateway routes
# Route 2: Greet API
spring.cloud.gateway.routes[0].id=welcome-user-api2
spring.cloud.gateway.routes[0].uri=lb://Welcome-User-Api2
spring.cloud.gateway.routes[0].predicates[0]=Path=/user2