Bu proje, Spring Boot 3 ve Spring Cloud kullanılarak geliştirilmiş uçtan uca bir e-ticaret mikroservis mimarisi örneğidir.
Proje, Ali Bouali'nin Mastering Microservices eğitim serisi referans alınarak oluşturulmuştur.
Uygulama:
- Domain Driven Design (DDD) prensiplerini uygular
- Asenkron iletişim için Apache Kafka kullanır
- Güvenlik için Keycloak (OAuth2 / OpenID Connect) kullanır
Proje, her biri belirli bir iş alanından sorumlu mikroservislerden oluşur.
| Servis | Port | Açıklama | Veritabanı |
|---|---|---|---|
| Config Server | 8888 | Merkezi konfigürasyon yönetimi | - |
| Discovery Server | 8761 | Servis kaydı ve keşfi (Eureka) | - |
| API Gateway | 8222 | Tek giriş noktası, routing ve güvenlik | - |
| Customer Service | 8090 | Müşteri yönetimi | MongoDB |
| Product Service | 8050 | Ürün ve stok yönetimi | PostgreSQL |
| Order Service | 8070 | Sipariş oluşturma ve yönetimi | PostgreSQL |
| Payment Service | 8060 | Ödeme işlemleri | PostgreSQL |
| Notification Service | 8040 | Kafka mesajlarını tüketir, e-posta gönderir | MongoDB |
- Java 17
- Spring Boot 3
- Spring Cloud
- Config Server
- Netflix Eureka
- API Gateway
- OpenFeign
- PostgreSQL
- MongoDB
- Apache Kafka
- Keycloak (OAuth2 / OpenID Connect)
- Zipkin (Distributed Tracing)
- Docker
- Docker Compose
- MailDev
- PGAdmin
- Mongo Express
Projeyi çalıştırmadan önce aşağıdakilerin kurulu olduğundan emin olun:
- Docker
- Java 17
- Maven
Proje altyapısını başlatmak için:
docker-compose up -d