Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/benawi/spring-boot-microservices
Spring Boot 3 Microservices, build microservices using Spring Boot and Spring Cloud.
https://github.com/benawi/spring-boot-microservices
Last synced: about 5 hours ago
JSON representation
Spring Boot 3 Microservices, build microservices using Spring Boot and Spring Cloud.
- Host: GitHub
- URL: https://github.com/benawi/spring-boot-microservices
- Owner: Benawi
- Created: 2024-10-02T11:32:19.000Z (4 months ago)
- Default Branch: master
- Last Pushed: 2024-10-24T08:03:30.000Z (3 months ago)
- Last Synced: 2024-10-25T04:31:00.926Z (3 months ago)
- Language: Java
- Size: 1.56 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
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:-## 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
```