Skip to content

Latest commit

 

History

History
 
 

3-reverse-proxy

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Exemplo 3: Circuit Breaker - proxy reverso

Neste exemplo teremos um sistema com a seguinte arquitetura:

  • Backend Service:

    • API REST
    • implementado em Node.JS
    • retorna uma profissão fictícia de um possível usuário
    • deployado em duas replicas:
      • node-1 funciona normalmente
      • node-2 sempre retorna erro 500
  • Reverse Proxy:

    • HAProxy
    • Proxy reverso na frente das replicas do backend service:
      • ${reverse proxy}/backend mapeia para ${backend service}/
      • faz load balancing round robin entre as replicas
      • protege as chamadas http com circuit breaker
  • Client Service:

    • API REST
    • implementado em Node.JS
    • chama o backend service através do reverse proxy

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

# gera carga de requisições ao client service com curl
make test

# abre a página de status do HAProxy no browser
make stats/haproxy

# derruba toda a infraestrutura
make stop

Referências

Expert

Rodrigo Botti