Contents
My car is a project which play a role as a system maintenance of the cars. Customers buys a cars and auto-attach to
some of the service station.
Built based on the microservice approach which to distribute logic on a small modules / microservices, namely:
- Business-microservices:
cars,customers,servicepartners. - Maintenance-microservices:
configserver,eurekaserver,gatewayserver.
- This project is for education purpose, and it's a cause why all microservices lies on the one repository.
- On working environment we need to use all of these microservices on separate repositories which handle different development teams.
- This microservice intend to reveal business logic about the customer cars.
- Has three entities:
Car,Car detailsandCar statistics. All of three entities have ONE-TO-ONE relationship. - Use a
PostgreSQLas RDBMS.
- 'Customers' microservice has on a goal to handle customer / owner entities, like:
Owner,Owner credentialsandOwner notifications. OwnerandOwner credentialshave ONE-TO-ONE relationship.OwnerandOwner notificationshave ONE-TO-MANY relationship.- Use an
Oracleas RDBMS.
- This microservice described service station behavior, which include:
Service partner/ service station,WorkerandCar maintenanceentities. Service partnerandWorkerhave ONE-TO-MANY relationship.Service partnerandCar maintenancehave ONE-TO-MANY relationship.- Use a
MongoDBas NoSQL DBMS.
It's a microservice which based on Spring Cloud Config. Provides support for externalized configuration in a distributed systems.
Plays a role of discovery service within microservice approach.
Intended to a general start point or gateway to our microservice network.
Before to run of My car microservice infrastructure you have to make sure that your host can connect to the repository
which intend to use by Spring Cloud Config server.
- If you have simple username & password approach to your repository then you need to add
usernameandpasswordparameters underspring.cloud.config.server.git. - Otherwise, you will need to setup ssh between host and repository and manually put ssh keys as files from your OS
directory to the root of this project:
root/ssh_keys.
Also make sure that your Docker and Kubernetes is enabled.
You may to use Docker or Kubernetes 'launchers' to start My car microservice infrastructure. Please be aware for three
profiles for it: default, prod and qa.
After proceed to one of these profiles you can find one bat file and this file will deploy all docker containers.
Deploying process may take a few minutes so please wait before all containers is started.