# Load Balancer

import DocButton from '~/components/webkit/DocButton.vue';

O **Load Balancer** é uma funcionalidade do Connectors projetado para balancear o tráfego em suas origens, data centers ou provedores de cloud, mitigando o congestionamento da rede e a sobrecarga do servidor. Para alcançar altos níveis de tolerância a falhas e desempenho caso haja algum problema com seus servidores de origem, seu conteúdo e aplicações devem estar disponíveis em múltiplas fontes.

Com o Load Balancer, você pode:

- Distribuir o tráfego entre seus servidores de origem.
- Garantir a disponibilidade de seus conteúdos e aplicativos, mesmo em caso de incidentes.
- Escolher entre algoritmos de balanceamento de carga.
- Criar regras de roteamento para equilibrar solicitações HTTP e HTTPS.

Para mais opções de como direcionar o tráfego para o **Load Balancer** baseado em outros critérios, consulte a página [Rules Engine para Applications](/pt-br/documentacao/produtos/build/applications/rules-engine/).

## Implementação

| Escopo | Recursos |
| --- | --- |
| Connectors | [Connectors](/pt-br/documentacao/produtos/secure/connectors/) |

---

## Método de balanceamento

O método de balanceamento define como as requisições serão distribuídas, considerando a disponibilidade das suas origens (camada 3) e possíveis erros de acesso, como quando a origem retorna um HTTP STATUS 500 (camada 7).

:::note
O **Load Balancer** irá consultar as origens de acordo com o método de balanceamento e o peso atribuído a elas. Se uma origem retornar um erro `4xx` ou `5xx`, ou demorar mais tempo para responder do que os [timeouts](/pt-br/documentacao/produtos/build/applications/origins/#timeouts) definidos na origem, o Load Balancer irá sobrepor o método de balanceamento e peso e consultar as origens restantes antes de retornar um erro aos seus usuários.

Para alterar este comportamento, [contate o time de suporte](/pt-br/documentacao/servicos/suporte/).
:::

### Round-Robin

O algoritmo de balanceamento **Round-Robin** garante uma distribuição uniforme do tráfego entre as origens em rotação. Em vez de considerar o tempo de resposta de cada origem, ele se concentra no volume de solicitações. Cada origem recebe uma carga proporcional ao seu peso atribuído no round-robin. Embora as origens mais lentas possam acumular mais conexões em paralelo, o algoritmo garante um balanceamento de carga equilibrado em todas as origens.

### Least Connections

O algoritmo **Least Connections** monitora as conexões ativas com cada origem e direciona consistentemente a próxima requisição para a origem com o menor número de conexões ativas. Essa abordagem otimiza a distribuição de carga enviando menos requisições para origens mais lentas, ao mesmo tempo em que permite que origens mais rápidas lidem com mais requisições em sequência.

### IP Hash

O algoritmo de balanceamento por **IP hash** rastreia os endereços IP do usuário e associa a mesma origem a cada IP. Ao criar um mapeamento consistente entre usuários e origens, essa abordagem garante que as requisições de cada usuário sejam direcionadas para o mesmo servidor de origem.

---

## Address

Você pode adicionar mais de um **Address** para sua origem. Os endereços no **Load Balancer** seguem a mesma lógica do endereço de **Single Origin**.

<DocButton href="/pt-br/documentacao/produtos/build/applications/origins/#address" label="Saiba mais sobre origin addresses" size="medium" />

---

## Weight

Você pode atribuir um **Weight** (peso) para cada endereço na forma de um número de `1` a `10`.

O peso define a proporção de carga que a origem receberá. Quanto maior o peso, mais carga a origem suportará. Por exemplo, se você definir o peso de uma origem como 3, ela receberá 3 vezes mais carga do que uma origem com um peso definido como 1.

---

## Server Role

Se você usa os métodos **Round-Robin** ou **Least Connections**, você pode definir uma **Server Role** para cada origem.

- **Primary**: são as origens de referência para solicitações e terão prioridade sobre as origens **Backup**.
- **Backup**: atuam como origens *standby* e só recebem a carga se todas as origens **Primary** falharem.

---

## Active

Em casos de interrupções de manutenção ou origem, você pode desativar um address temporariamente da carga. Ao desativar o switch **Active**, o seu servidor ficará inativo, garantindo que sua infraestrutura passe por manutenção sem perturbar o desempenho geral.

:::caution
Pelo menos uma origem ativa é necessária para que o conteúdo esteja disponível.
:::

---

## Limites

:::tip
**Aumente limites** <br></br>
Você pode solicitar o aumento dos limites. Contate o [time de suporte técnico](/pt-br/documentacao/servicos/suporte/) para fazer a solicitação.
:::

### Addresses

Com o **Load Balancer** ativado, você pode criar até 10 addresses para cada origem.



---