1) what is Monolith application?

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.

2) Monolith Advantages?

1) Easy to develop

2) Total source code at one place

3) Easily We understand project functionality

4) Easy to test

3) Monolith DisAdvantages

1) Maintence is very difficult

2) If any change in code, whole project should be re-deployed

3) Single Point Of Failure

4) What is microservice?

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.

5) Advantages of microservice or Benefits of Microservice?

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

6)Divantages of microservice or Drawbacks of microservice architechture?

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)

Micro service Archetechture

Deployement process in AWS

Profile Concept

Spring-Security

Ciruit breaker

7) what are the different Spring cloud projects we use to develop microservice based application?

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 url

application.properties file

server.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 Routing

# 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