Fabio
Fabio é um proxy reverso HTTP(S) e TCP de alto desempenho, projetado para ser simples, rápido e moderno com balanceamento de carga.
Nos sistemas da Ema, o serviço de balanceamento de carga é executado sob o nome fabio.exe, integrado ao Consul e fundamental para a comunicação entre os micro serviços.
Ele foi criado para facilitar a implantação, atualização e refatoração de aplicações integradas ao Consul, eliminando a necessidade de configurações manuais complexas.
Principais Características
- Integração nativa com o Consul: basta registrar os serviços e configurar health checks. O Fabio automaticamente descobre e roteia o tráfego.
- Zero configuração: não é necessário editar arquivos de configuração para adicionar ou remover serviços.
- Balanceamento de carga inteligente: distribui o tráfego entre os serviços de forma automática.
- Alta performance: comprovado em produção, processando mais de 23.000 requisições/segundo desde 2015 sem falhas.
- Confiabilidade em escala: utilizado em grandes sites, como o gumtree.com.au, garantindo estabilidade e disponibilidade contínuas.
Benefícios
- Reduz complexidade de implantação de microsserviços.
- Escalabilidade sem esforço.
- Atualizações contínuas sem interrupções.
- Menos dependência de configuração manual, mais foco em desenvolvimento.
Por que "Fabio"?
De acordo com o desenvolvedor, o nome Fabio surgiu de maneira eventual e sem muitas pretenções:
Quando eu estava escrevendo Fabio, meu filho assistia "Procurando Nemo" quase todo dia e Dory continuava errando o nome de Nemo. Um dos nomes que ela o chamava era "Fábio". Daí o nome.
Mantenedor
O Fabio foi desenvolvido e mantido por Frank Schröder até janeiro de 2020. Desde essa data, a manutenção primária tem sido responsabilidade da ENA e da grande comunidade de usuários.
Ele foi originalmente desenvolvido no eBay Classifieds Group em Amsterdã, Holanda.
👉 Código-fonte e documentação completa: GitHub - fabiolb/fabio