Skip to content

elvesbd/desafio-ms

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation



Proposta de resolução para o desafio

Serviço de Gerenciamento de Usuários

DescriçãoServiçosInfraestruturaGuia

Descrição

Este é um exemplo de aplicação desenvolvida utilizando a arquitetura de microsserviços com os serviços api-gateway e ms-users, implementados em NestJS (Typescript). O objetivo dessa aplicação é demonstrar a comunicação entre os serviços, o uso de um barramento de mensagens Kafka e a integração com diferentes tipos de armazenamento de dados.

Serviços

api-gateway

O serviço api-gateway é responsável por receber as requisições externas e encaminhá-las para o serviço adequado. Neste exemplo, ele fornece um endpoint para receber um objeto JSON e publica esse objeto para um tópico no Kafka.

ms-users

O serviço ms-users é responsável pelo gerenciamento de usuários. Ele consome e processa objetos a partir do tópico do Kafka e os insere em um banco de dados NoSQL. Na solução proposta foi utilizado mongoDB

Infraestrutura

A infraestrutura deste projeto foi cuidadosamente desenvolvida e orquestrada utilizando Docker Compose, com base nas especificações definidas no arquivo YAML fornecido. Essa abordagem permite uma implantação simplificada e consistente de todos os componentes necessários para o funcionamento da aplicação de gerenciamento de usuários.

A infraestrutura consiste em diversos serviços interconectados que trabalham em conjunto para garantir o fluxo de dados, processamento e armazenamento seguro. Abaixo estão os principais componentes que compõem a infraestrutura:

api-gateway:  Este serviço atua como o ponto de entrada para as solicitações externas. Ele recebe requisições e encaminha para o serviço adequado. Isso é feito através do mapeamento das portas e volumes definidos no arquivo YAML.

ms-users:  Este é um microsserviço responsável pelo gerenciamento de usuários. Ele se comunica com o serviço api-gateway e consome mensagens do tópico do Kafka para processar e inserir dados de usuários em um banco de dados NoSQL (MongoDB).

db:  Um banco de dados NoSQL MongoDB é provisionado para armazenar os dados dos usuários. Ele é configurado com um nome de usuário e senha, permitindo acesso seguro.

zookeeper:  O ZooKeeper é um serviço centralizado para gerenciar a configuração e coordenação do cluster Kafka. Ele é usado para garantir a confiabilidade e consistência na comunicação entre os nós do Kafka.

kafka:  O Kafka é uma plataforma de streaming distribuída, usada aqui como um barramento de mensagens. Ele é configurado com um tópico para transmitir os objetos JSON entre os serviços api-gateway e ms-users. O serviço ms-users consome essas mensagens e as processa para posterior inserção no banco de dados.

Guia

  1. Faça o clone do repositório.
git clone https://github.com/elvesbd/desafio-ms.git
  1. Acesse o projeto api-gateway.
cd desafio-ms/api-gateway
  1. Execute o comando.
npm install
  1. Acesse o projeto ms-users.
cd desafio-ms/ms-users
  1. Execute o comando.
npm install
  1. No projeto ms-users crie o arquivo .env com as informações contidas no arquivo .env.example
MONGO_URI=mongodb://root:ebd123@db:27017
  1. Suba a infraestrutura com o comando.
docker compose up
  1. Agora você só precisa realizar uma requisição para o serviço api-gateway com os dados da requisição.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 89.0%
  • JavaScript 9.1%
  • Dockerfile 1.9%