Skip to content

E-Commerce criado utilizando as tecnologias Java e Kafka

Notifications You must be signed in to change notification settings

rafacancian/java-kafka-ecommerce

Repository files navigation

RAC Ecommerce

RAC Ecommerce Logo

Projeto ecommerce com diversos micro serviços de responsabilidades diferentes simulando o fluxo de compra de um sistema de comercio eletronico.

Os microservices são dividios em modulos sendo um deles o modulo common que possui as implementações genericas de kafa para produzir e consumir mensagerias

Microserviços

Common kafka

modulo generico do sistema. responsavel por produzir e consumir mensagerias com kafka

Aplication manager

http service responsavel por iniciar os processo de mensageria. Default Port: 8090

Service order

modulo responsavel por iniciar um fluxo de ordem de compra Default Port: 8091

service user

modulo responsavel por armazenar os usuarios do sistema em uma base de dados atualmente usando mock dos dados Default Port: 8095

Service fraud detector

modulo responsavel por validar as informações de uma ordem e verificar se a compra pode ser realizada pelo usuario Default Port: 8094

Service email

modulo responsavel por enviar um email sobre o processo da ordem de compra Default Port: 8093

Service logger

modulo responsavel por centralizar os logs de todos os microserviçoes Default Port: 8092


System Technologies

  • Java: Java 12
  • Spring Boot: Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run"
  • Spring Cloud: Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems
    • Feign: for external server communications
  • Kafka: Apache Kafka is an open-source distributed event streaming platform used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications.
  • Zookeeper: centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services
  • Kafdrop: Kafdrop is a web UI for viewing Kafka topics and browsing consumer groups. The tool displays information such as brokers, topics, partitions, consumers, and lets you view messages.
  • Lombok: Annotations helper library
  • H2: A very fast database embedded for tests
  • Swagger: Swagger open source and pro tools have helped millions of API developers, teams, and organizations deliver great APIs.
  • Docker: The most famous container engine used to execute the B3Invest project with their external dependencies

Architecture Design


Steps to run

  1. Run Kafka server

The docker compose contains the kafka and Zookeeper server. docker-compose up -d

  1. Run service-order
  2. Run service-user
  3. Run service logger
  4. Run service-email
  5. Run service-fraud-detector
  6. Run service-reporting

Docker Compose

Kafka e Zookeeper

links reference:

docker-compose up -d
docker logs -f <container-id>
docker run -p <external-port>:<internal-port> --name <container-name> --network <network-name> <image-name:tag>
docker-compose down

Postman Collection

Kafdrop

Dashboard for viewing Kafka topics and browsing consumer groups http://localhost:9000/

Swagger

  • The generated swagger html page is available in the following address
    http://localhost:8080/swagger-ui/index.html

TODO

  • ✔️ kafka common
  • ☑️ update readme

About

E-Commerce criado utilizando as tecnologias Java e Kafka

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages