Olá pessoal,
vi algumas perguntas aqui no fórum com pessoal passando pelo mesmo problema que eu passei porém sem resposta ou solução. Como acabei encontrando a solução, vou registrar aqui para ajudar os próximos que virão.
O bug acontece no seguinte cenário, eu estou utilizando a versão 3.4.2 do Spring e na aula a professora sugere instalar a seguinte dependência:
pom.xml
<dependency>
<groupId>io.github.resilience4j</groupId>
<artifactId>resilience4j-spring-boot2</artifactId>
<version>1.7.0</version>
</dependency>
depois de algumas horas perdidas reparei no resilience4j-spring-boot2 que era para o Spring 2, e como estou utilizando a 3 deve haver algum nível de incompatibilidade e isso não gera nenhum erro no console, simplesmente não ativa o circuit breaker em momento nenhum. Quando você realiza a requisição para payment-ms (coloquei em inglês mas é o equivalente a pagamentos-ms da aula) com o order-ms (equivalente ao peididos-ms da aula) desligado a única resposta que obtém é :
Resposta da requisição no postman
{
"timestamp": "2025-01-31T20:01:31.000+00:00",
"status": 500,
"error": "Internal Server Error",
"trace": "feign.FeignException$ServiceUnavailable: [503] during [PUT] to [http://order-microservice/orders/4/paid] [OrderClient#updatePaidOrder(Long)]: [Load balancer does not contain an instance for the service order-microservice]\r\n\tat feign.FeignException.serverErrorStatus(FeignException.java:287)\r\n\tat feign.FeignException.errorStatus(FeignException.java:226)\r\n\t ..."
"message": "[503] during [PUT] to [http://order-microservice/orders/4/paid] [OrderClient#updatePaidOrder(Long)]: [Load balancer does not contain an instance for the service order-microservice]",
"path": "/payments/5/confirm"
}
E mesmo sem um método de fallback ele continua dando esse erro ao invés de entrar no estado de OPEN dos circuit breaker.
Então como falei do resilience4j usando o spring 2 e o meu spring sendo o 3, consegui resolver o problema atualizando a dependência para:
pom.xml
<dependency>
<groupId>io.github.resilience4j</groupId>
<artifactId>resilience4j-spring-boot3</artifactId>
</dependency>
E isso resolveu meus problemas. Espero poder ter ajudado os futuros alunos com essa postagem.
Até mais pessoal.