This is a sample microservice application created for training purposes.
Technologies used:
- Spring Boot, Spring Cloud
- Spring Cloud Gateway
- route API request using load balancer filter which detects the URI and replaces it with an available endpoint associated with service name
- Netflix Eureka
- service discovery
- Micrometer -> Zipkin
- for distributed tracing
- available at http://localhost:9411/zipkin (part of eureka-server)
- Feign clients
- TODO: dynamic Spring Validator
- TODO: automatic build to docker registry and deployment using Watchtower
- TODO: OAuth2 and Keycloak
- TODO: Kafka
Components
- microservices-parent
- standalone modules:
- customer
- port 8080
- fraud
- port 8081
- notification
- port 8082
- API gateway
- port 8083
- eureka-server
- running at port 8761
- customer
- shared modules
- microservices-clients
- Feign clients
- message-queue
- RabbitMQ
- microservices-clients
- standalone modules:
Tools
- PgAdmin
Usage
docker compose up
- starts PGSQL + PgAdmin, and Zipkin