Bu projede, kullanıcıların kaydolabileceği, şifre değiştirebileceği, sepete ürün ekleyebileceği, sepetteki ürün sayısını düzenleyebileceği ve sipariş verip ödeme yapabileceği bir e-ticaret uygulaması geliştirilmiştir.
Spring Boot
Open Feign
Eureka Server/Client
Spring Data JPA
Open API
Lombok
Mapstruct
Redis
Kafka
ELK Logstash
ElasticSearch
MongoDB
PostgreSQL
Prometheus
Grafana
Kubernetes
H2 Database
Spring Config Server
Zipkin
Gradle
JWT
OpenShift
Jenkins
React
- Kullanıcıların sisteme kayıt olmasını sağlar.
- Kullanıcıların şifre değiştirme işlemini gerçekleştirir.
- Sepete ürün ekleme işlemini gerçekleştirir.
- Sepetteki ürün sayısını artırma veya azaltma işlemini gerçekleştirir.
- Sepeti tamamen boşaltma işlemini gerçekleştirir.
- Sipariş işlemlerini yönetir ve gerçekleştirir. Orderın üzerinde placeOrder methodu bulunmaktadır. placeOrder methodu payment'tan önce postgre database'e order ve orderoutbox diye iki kayıt atmaktadır. Order'ın statusu paymenttan önce RECEIVED'a çekilmektedir. Ödeme ve order adımları transactional bir method içerisinde gerçekleşmektedir. Eğer ödeme alınır ve orderın statusu preparinge çekilemezse, kafka içerisinde preparinge çekilir. Order service içerisinde schedular job çalışmaktadır. Atıl kalan orderoutbox kayıtlarını temizler. Eğer kafka da çökerse slack üzerinden alert yazısı gönderilir.
- Ödeme işlemlerini gerçekleştirir ve yönetir.
- Ürünleri ID ile getirme işlemini gerçekleştirir.
- Tüm ürünleri getirme işlemini gerçekleştirir.
Monitoring tool
Grafana
Elastic Logstash Kibana uygulamanın içerisinde embedded logback xmle' bağlı kafka appender bulunmaktadır. Uygulamadaki loglar kafka appender üzerinden asenkron olarak hem mongo databaseine hem de file systeme gönderilmektedir. Zipkin aracılığıyla uygulamaya gelen her http thread'i trace edilmektedir.
ELK
Uygulama uzerindeki tum resimler Aws S3 sunucudan alinip, getAllProduct methodu redis cache'e atmaktadir.
https://github.com/fmssbilisimtech/ecommerce-template-backend
https://github.com/gencdevops/e-commerce-microservice-backend
https://github.com/gencdevops/e-commerce-microservice-frontend