Microserviços com Ktor e Nomad
Esse projeto é um teste prático de microserviços usando o framework Ktor, o banco de dados Postgres, o orquestrador de conteiners Nomad, o Service Mash Consul e o Load Balancer para Consul Fabio.
ATENÇÃO: Esse projeto não busca ser o padrão para a criação de microserviços usando as tecnologias listadas, é apenas um experimento meu enquanto buscava aprender mais sobre as tecnologias acima.
Arquitetura
Microserviços
São dois microserviços Ktor, sendo:
user-microservice
: Microserviço referente á criação, leitura (de todos e de um único registro), edição e remoção de usuários. Rota sendo/user
;post-microservice
: Microserviço referente á criação, leitura (de todos e de um único registro), edição e remoção de postagens. Rota sendo/post
;
Cada um com quatro instâncias.
Banco de dados
O banco de dados é um Postgres na sua última versão disponível no DockerHub. Com uma única instância.
Fabio
Fabio é o Load Balancer da aplicação, que irá receber as requisições. Nesse caso, A rota do Load Balancer é 9999, e a rota da UI do Fabio é 9998.
Executando
Primeiro, vá á pasta nomad
e inicie o Consul, que será usado para fazer o Networking da aplicação:
sudo consul agent -dev
Após isso, inicie o Nomad, também na pasta nomad
:
sudo nomad agent -dev-connect -config=nomad.hcl
Agora, inicie os jobs:
nomad job run postgres.nomad
nomad job run fabio.nomad
nomad job run user-microservice.nomad
nomad job run post-microservice.nomad