Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/saiupadhyayula/spring-boot-3-microservices-course
Spring Boot 3 Microservices Course Repository
https://github.com/saiupadhyayula/spring-boot-3-microservices-course
angular gateway grafana kafka keycloak kubernetes loki microservices oauth2 schema-registry spring-boot tempo testcontainers
Last synced: 4 days ago
JSON representation
Spring Boot 3 Microservices Course Repository
- Host: GitHub
- URL: https://github.com/saiupadhyayula/spring-boot-3-microservices-course
- Owner: SaiUpadhyayula
- Created: 2024-07-21T05:59:54.000Z (6 months ago)
- Default Branch: master
- Last Pushed: 2024-08-09T08:59:13.000Z (6 months ago)
- Last Synced: 2025-01-18T04:04:32.637Z (4 days ago)
- Topics: angular, gateway, grafana, kafka, keycloak, kubernetes, loki, microservices, oauth2, schema-registry, spring-boot, tempo, testcontainers
- Language: Java
- Homepage: https://youtu.be/yn_stY3HCr8?si=EjrBEUl0P-bzSWRG
- Size: 324 KB
- Stars: 200
- Watchers: 6
- Forks: 118
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Spring Boot Microservices
This repository contains the latest source code of the spring-boot-microservices tutorialYou can watch the tutorial on Youtube [here](https://youtu.be/yn_stY3HCr8?si=EjrBEUl0P-bzSWRG)
## Services Overview
- Product Service
- Order Service
- Inventory Service
- Notification Service
- API Gateway using Spring Cloud Gateway MVC
- Shop Frontend using Angular 18## Tech Stack
The technologies used in this project are:
- Spring Boot
- Angular
- Mongo DB
- MySQL
- Kafka
- Keycloak
- Test Containers with Wiremock
- Grafana Stack (Prometheus, Grafana, Loki and Tempo)
- API Gateway using Spring Cloud Gateway MVC
- Kubernetes## Application Architecture
![image](https://github.com/user-attachments/assets/d4ef38bd-8ae5-4cc7-9ac5-7a8e5ec3c969)## How to run the frontend application
Make sure you have the following installed on your machine:
- Node.js
- NPM
- Angular CLIRun the following commands to start the frontend application
```shell
cd frontend
npm install
npm run start
```
## How to build the backend servicesRun the following command to build and package the backend services into a docker container
```shell
mvn spring-boot:build-image -DdockerPassword=
```The above command will build and package the services into a docker container and push it to your docker hub account.
## How to run the backend services
Make sure you have the following installed on your machine:
- Java 21
- Docker
- Kind Cluster - https://kind.sigs.k8s.io/docs/user/quick-start/#installation### Start Kind Cluster
Run the k8s/kind/create-kind-cluster.sh script to create the kind Kubernetes cluster```shell
./k8s/kind/create-kind-cluster.sh
```
This will create a kind cluster and pre-load all the required docker images into the cluster, this will save you time downloading the images when you deploy the application.### Deploy the infrastructure
Run the k8s/manisfests/infrastructure.yaml file to deploy the infrastructure
```shell
kubectl apply -f k8s/manifests/infrastructure.yaml
```### Deploy the services
Run the k8s/manifests/applications.yaml file to deploy the services
```shell
kubectl apply -f k8s/manifests/applications.yaml
```### Access the API Gateway
To access the API Gateway, you need to port-forward the gateway service to your local machine
```shell
kubectl port-forward svc/gateway-service 9000:9000
```### Access the Keycloak Admin Console
To access the Keycloak admin console, you need to port-forward the keycloak service to your local machine```shell
kubectl port-forward svc/keycloak 8080:8080
```### Access the Grafana Dashboards
To access the Grafana dashboards, you need to port-forward the grafana service to your local machine```shell
kubectl port-forward svc/grafana 3000:3000
```