Skip to content

smokeInCloud060201/e-commerce-microservice-backend

 
 

Repository files navigation

Fmss e-commerce template


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.


Tech Stack

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

Servisler ve İşlevleri

User Servis

  • Kullanıcıların sisteme kayıt olmasını sağlar.
  • Kullanıcıların şifre değiştirme işlemini gerçekleştirir.
Kullanıcı bilgilerini girip kayıt olur (isim, soyisim, email, kullanıcı adı, parola). Daha sonra email ve şifresini girerek sisteme login olur. Sistemden JWT token alır ve LDAP'ta valide olur

Basket Servis

  • 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.

Order Servis

  • 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.

Payment Servis

  • Ödeme işlemlerini gerçekleştirir ve yönetir.

Product Servis

  • Ürünleri ID ile getirme işlemini gerçekleştirir.
  • Tüm ürünleri getirme işlemini gerçekleştirir.

Uygulamadan Görüntüler

Monitoring tool
Grafana
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 ELK





Uygulama uzerindeki tum resimler Aws S3 sunucudan alinip, getAllProduct methodu redis cache'e atmaktadir.

image

Bağlantılar

https://github.com/fmssbilisimtech/ecommerce-template-backend
https://github.com/gencdevops/e-commerce-microservice-backend
https://github.com/gencdevops/e-commerce-microservice-frontend

About

e-commerce-microservice-backend

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 90.0%
  • HTML 9.6%
  • Dockerfile 0.4%