O que é Circuit Breaker?

No artigo sobre microsserviços, vimos a quantidade de vantagens que ele possui, como o baixo acoplamento, reuso de código e a agilidade no desenvolvimento. Mas, como a ação dos usuários disparam diversos serviços separadamente, falhas nas chamadas das cadeias de serviço podem acontecer. Afinal, como lidar com momentos onde um ou mais serviços ficam indisponíveis? Confira neste artigo o Circuit Breaker.

O que é Circuit Breaker?

É um padrão de projeto que permite construir serviços que sejam tolerantes a falhas, permitindo que uma aplicação lide com eventuais indisponibilidades nos serviços adjacentes.
O termo Circuit Breaker em português significa “disjuntor elétrico”.

Este padrão prevê a implementação de uma estrutura que atue igual a um disjuntor elétrico, desarmando comportamentos de uma aplicação quando elementos envolvidos comecem a apresentar muitas falhas e/ou indisponibilidade.

Com sua utilização, é possível garantir um desempenho estável principalmente com relação às integrações entre microsserviços, onde podemos monitorar falhas e fornecer um serviço alternativo ou mensagem de erro mais acessível.

Estados

O Circuit Breaker tem 3 estados distintos:

Closed: este é o seu estado normal. Ele permanecerá fechado, ou seja, ele permitirá a passagem de fluxos de dados normalmente;

Open: neste estado, ele “abre” o circuito de comunicação entre estruturas (como outros microsserviços ou até mesmo outras estruturas dentro de um mesmo microsserviço). Assim como em um circuito elétrico aberto, onde a energia deixa de fluir, um microsserviço que fique com o circuit breaker aberto deixará de operar o fluxo que for afetado por ele, passando a retornar uma mensagem de erro ou mesmo passando a executar fluxos de emergência;

Half-Open: depois de um período com o circuito aberto, seu estado pode ser alternado para half-open. Isso ocorre como um mecanismo de recuperação, pois enquanto o circuit breaker está neste estado, o próprio avaliará se o fluxo ainda continua em estado de falha ou se já foi reestabelecido através de uma sequência de verificações. Se uma única chamada falhar nesse estado semi-aberto, o circuit breaker abrirá novamente. Caso as chamadas voltem a ser feitas com sucesso, o circuit breaker irá fechar o circuito novamente, retornando ao estado normal.

Considerações finais…

Este padrão pode nos ajudar muito em problemas associados à disponibilidade e capacidade de resposta ao se comunicar remotamente com microsserviços. Isso certamente irá aumentar significativamente o desempenho e a capacidade de resposta em seu aplicativo de microsserviços (ou qualquer outro tipo de aplicação principalmente remoto).

Deixe seu comentário

Responsável pelo sucesso do cliente na TreinaWeb. Graduada em Gestão de Tecnologia da Informação pela FATEC Guaratinguetá, além de estudante de Marketing Digital e Mídias Sociais.

© 2004 - 2019 TreinaWeb Tecnologia LTDA - CNPJ: 06.156.637/0001-58 Av. Paulista, 1765, Conj 71 e 72 - Bela Vista - São Paulo - SP - 01311-200