fully-completed-microservices-Java-Springboot

Fully Completed Microservices Project

Overview

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.

Microservices Description

  1. Config Server
    • Provides centralized configuration for all microservices.
    • Uses Spring Cloud Config Server.
  2. Customer Service
    • Manages customer data and operations.
    • Integrated with Eureka Discovery.
  3. Discovery Service
    • Service registry using Netflix Eureka.
    • Enables service discovery for other microservices.
  4. Gateway Service
    • API Gateway for routing requests to appropriate microservices.
    • Uses Spring Cloud Gateway.
    • Includes distributed tracing and circuit breaker.
  5. Notification Service
    • Handles notifications and alerts.
    • Uses Kafka for messaging.
  6. Order Service
    • Manages orders and their statuses.
    • Integrated with Eureka Discovery.
  7. Payment Service
    • Processes payments.
    • Uses Eureka Discovery and Zipkin for tracing.
  8. Product Service
    • Manages product information.
    • Integrated with Eureka Discovery.

Features

Prerequisites

Running the Microservices

  1. Clone the repository
    git clone https://github.com/PramithaMJ/fully-completed-microservices.git
    cd fully-completed-microservices
    
  2. Start Config Server
    cd config-server
    mvn spring-boot:run
    
  3. Start Discovery Service
    cd discovery
    mvn spring-boot:run
    
  4. Start Other Microservices Start the remaining microservices in any order. Ensure they are configured to register with the Discovery Service.

    cd <microservice-name>
    mvn spring-boot:run
    

Configuration

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.

Deployment

To deploy the microservices using Docker, use the Dockerfile available in each microservice directory. You can build and run the Docker images as follows:

cd <microservice-name>
docker build -t <microservice-name>:latest .
docker run -d -p <port>:<container-port> <microservice-name>:latest

Contributing

  1. Fork the repository.
  2. Create your feature branch (git checkout -b feature/your-feature).
  3. Commit your changes (git commit -m 'Add some feature').
  4. Push to the branch (git push origin feature/your-feature).
  5. Open a pull request.

License

This project is licensed under the MIT License.

Contact

For any questions or feedback, please open an issue in the repository.

Thank you, Pramitha Jayasooriya https://pramithamj.live

Donation

If you like what I do, maybe consider buying me a coffee

Buy Me A Coffee