Skip to content

Latest commit

 

History

History

2-lib-state

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Exemplo 2: Circuit Breaker - biblioteca local com estado distribuído

Neste exemplo teremos um sistema com a seguinte arquitetura:

  • Backend Service:

    • API REST
    • implementado em Node.JS
    • retorna um nome fictício de um possível usuário
  • Client Service:

    • API REST
    • implementado em Node.JS
    • chama o backend service e retorna o valor recebido
    • chamda http ao backend service protegida por implementação de circuit breaker local que utiliza o Redis para armazenar seu estado
    • deployado em três replicas
  • Redis

    • Redis como cache distribuído
    • guarda o estado dos circuit breakers como chave-valor

Execução local

O sistema é deployado localmente utilizando docker e docker-compose.

Comandos

O exemplo utiliza make como task manager. Os targets estão definidos no Makefile.

# builda todas as imagens e sobe os serviços dentro de uma mesma rede
make start

# reinicia o backend service
make start/server

# derruba o backend server
make stop/server

# tail do log de cada replica do client service
make logs/1
make logs/2
make logs/3

# conecta-se ao redis
# precisa de Node.JS instalado
make redis-cli

# derruba toda a infraestrutura
make stop

Referências

Expert

Rodrigo Botti