Skip to content

Commit 9b913f4

Browse files
authored
Update README.md
1 parent b914976 commit 9b913f4

File tree

1 file changed

+128
-1
lines changed

1 file changed

+128
-1
lines changed

README.md

Lines changed: 128 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,128 @@
1-
# Spring boot microservice for learning
1+
# Fully Completed Microservices Project
2+
3+
## Overview
4+
5+
This repository contains a collection of fully completed microservices built with Spring Boot version 3.2.5 and Java 17. The project utilizes Spring Cloud version 2023.0.1 for implementing various distributed system patterns and features.
6+
7+
## Microservices Description
8+
9+
1. **Config Server**
10+
- Provides centralized configuration for all microservices.
11+
- Uses Spring Cloud Config Server.
12+
13+
2. **Customer Service**
14+
- Manages customer data and operations.
15+
- Integrated with Eureka Discovery.
16+
17+
3. **Discovery Service**
18+
- Service registry using Netflix Eureka.
19+
- Enables service discovery for other microservices.
20+
21+
4. **Gateway Service**
22+
- API Gateway for routing requests to appropriate microservices.
23+
- Uses Spring Cloud Gateway.
24+
- Includes distributed tracing and circuit breaker.
25+
26+
5. **Notification Service**
27+
- Handles notifications and alerts.
28+
- Uses Kafka for messaging.
29+
30+
6. **Order Service**
31+
- Manages orders and their statuses.
32+
- Integrated with Eureka Discovery.
33+
34+
7. **Payment Service**
35+
- Processes payments.
36+
- Uses Eureka Discovery and Zipkin for tracing.
37+
38+
8. **Product Service**
39+
- Manages product information.
40+
- Integrated with Eureka Discovery.
41+
42+
## Features
43+
44+
- **Service Discovery**: All microservices register with the Eureka server for easy discovery.
45+
- **Centralized Configuration**: Configurations are managed centrally using the Spring Cloud Config Server.
46+
- **API Gateway**: Spring Cloud Gateway is used for routing and handling cross-cutting concerns like security, monitoring, and resilience.
47+
- **Distributed Tracing**: Zipkin is used for tracing requests across microservices.
48+
- **Circuit Breaker**: Circuit breaking capabilities provided by Spring Cloud Circuit Breaker.
49+
- **Messaging**: Kafka is used for asynchronous communication between microservices.
50+
51+
## Prerequisites
52+
53+
- Java 17 or later
54+
- Maven or Gradle
55+
- Docker (optional, for containerized deployment)
56+
57+
## Running the Microservices
58+
59+
1. **Clone the repository**
60+
```sh
61+
git clone https://github.com/PramithaMJ/fully-completed-microservices.git
62+
cd fully-completed-microservices
63+
```
64+
65+
2. **Start Config Server**
66+
```sh
67+
cd config-server
68+
mvn spring-boot:run
69+
```
70+
71+
3. **Start Discovery Service**
72+
```sh
73+
cd discovery
74+
mvn spring-boot:run
75+
```
76+
77+
4. **Start Other Microservices**
78+
Start the remaining microservices in any order. Ensure they are configured to register with the Discovery Service.
79+
80+
```sh
81+
cd <microservice-name>
82+
mvn spring-boot:run
83+
```
84+
85+
## Configuration
86+
87+
Each microservice has its configuration properties defined in the `application.yml` or `application.properties` file. The Config Server properties should be specified in a central configuration repository.
88+
89+
## Deployment
90+
91+
To deploy the microservices using Docker, use the Dockerfile available in each microservice directory. You can build and run the Docker images as follows:
92+
93+
```sh
94+
cd <microservice-name>
95+
docker build -t <microservice-name>:latest .
96+
docker run -d -p <port>:<container-port> <microservice-name>:latest
97+
```
98+
99+
## Contributing
100+
101+
1. Fork the repository.
102+
2. Create your feature branch (`git checkout -b feature/your-feature`).
103+
3. Commit your changes (`git commit -m 'Add some feature'`).
104+
4. Push to the branch (`git push origin feature/your-feature`).
105+
5. Open a pull request.
106+
107+
## License
108+
109+
This project is licensed under the MIT License.
110+
111+
## Contact
112+
113+
For any questions or feedback, please open an issue in the repository.
114+
115+
Thank you,
116+
Pramitha Jayasooriya
117+
https://pramithamj.me
118+
119+
<!--
120+
buy me a coffee
121+
-->
122+
## Donation
123+
124+
***If you like what I do, maybe consider buying me a coffee***
125+
126+
<a href="https://buymeacoffee.com/lpramithamm"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-red.png" alt="Buy Me A Coffee" style="height: 35px !important; width: 120px !important;"></a>
127+
128+
***

0 commit comments

Comments
 (0)