Esse projeto tem motivação para mostrar a aquitetura de microserviço juntamente com alguns partens, foi utilizado DiscoveryServer e balanceamento de cargas, então seja bem vindo para visualizar como essa arquitetura funciona.
Tecnologias utilizadas do projeto:
- Java
- Spring Web
- Sprig WebFlux
- Eureka Server
- Docker
- PostgreSQL
Você verá que você pode rodar a imagem gerada pelo arquivo Dockerfile, porém você pode seguir dois caminhos, esse ou rodando um serviço de cada para visualizar melhor a arquitetura funcionando, vamos ao primeiro.
Certifique-se de ter o Docker instalado em sua máquina. Você pode baixar e instalar o Docker aqui.
-
Baixe a imagem Docker: Primeiro, você precisa baixar a imagem Docker do registro de contêineres. Substitua
nome-da-imagem
pelo nome da imagem Docker que você deseja baixar.docker pull nome-da-imagem
-
Execute o contêiner: Depois de baixar a imagem, você pode executar o contêiner usando o comando
docker run
. Substituanome-da-imagem
pelo nome da imagem que você baixou.docker run -d -p 8080:80 nome-da-imagem
-d
: Executa o contêiner em segundo plano (em modo "detached").-p 8080:80
: Mapeia a porta 8080 do host para a porta 80 do contêiner. Você pode substituir8080
por qualquer outra porta disponível em seu sistema.nome-da-imagem
: O nome da imagem Docker que você deseja executar.
-
Verifique se o contêiner está em execução: Para verificar se o contêiner está em execução, você pode usar o comando
docker ps
.docker ps
Isso listará todos os contêineres em execução no momento. Certifique-se de que o seu contêiner esteja na lista.
-
Acesse o aplicativo: Agora que o contêiner está em execução, você pode acessar o aplicativo em seu navegador da web. Basta abrir um navegador e digitar
http://localhost:8080
na barra de endereços. -
Parar e remover o contêiner (opcional): Quando terminar de usar o contêiner, você pode pará-lo e removê-lo usando os seguintes comandos:
docker stop ID_DO_CONTAINER docker rm ID_DO_CONTAINER
Substitua
ID_DO_CONTAINER
pelo ID do contêiner que você deseja parar e remover. Você pode encontrar o ID do contêiner usando o comandodocker ps
.Nota: Você também pode parar e remover todos os contêineres de uma vez usando
docker stop $(docker ps -a -q)
edocker rm $(docker ps -a -q)
respectivamente. Tenha cuidado ao usar esses comandos, pois eles param e removem todos os contêineres em seu sistema.
Isso conclui o guia sobre como executar um contêiner Docker em seu ambiente local.
Ao baixar o repositório, vai ser interessante você ter o PostgreSQL na sua maquina e em seguida, instanciar ele no projeto. É interessante você baixar o maven para a criação de novas instâncias.
Se você está usando um discovery server para gerenciar as instâncias e não precisa especificar a porta manualmente, você pode simplesmente criar as instâncias do microserviço sem preocupações com a porta.
-
Navegue até o Diretório do Projeto: Abra o terminal e navegue até o diretório raiz do seu projeto
meu-microservico
. -
Crie as Instâncias: Execute os seguintes comandos Maven para criar cada instância:
# Crie a primeira instância mvn clean install java -jar target/meu-microservico.jar # Crie a segunda instância mvn clean install java -jar target/meu-microservico.jar # Crie a terceira instância mvn clean install java -jar target/meu-microservico.jar
1- Rode primeiro o serviço DiscoveryServer, em seguida rode o serviço de Gateway e aí em seguida rode os demais serviços.
Ao ser rodado mais de uma instância, foi adicionado um balaceamento de cargas, para que seja distribuido as cargas devidamente das requisições.
Percebe-se que está sendo usado WebFlux para um Serviço em específico, foi adicionado mais de um paradigma de programação nesse projeto, o Reativo e o mais comum que vemos no mercado.
Todo Parttens que foi adicionado no projeto foi apenas para mostrar os conhecimentos sobre eles, pois claramente não são necessários para esse projeto, seria apenas para mostrar na prática como funciona uma arquitetura de microserviço que aborda vários parttens em uma aplicação.