Spring Boot Microservices Tutorial - Part 9 - Circuit Breaker with Resilience4J

preview_player
Показать описание
In this Spring Boot 3 Microservices tutorial series, we will learn how to build microservices using Spring Boot and Spring Cloud.

This is part 9 of the series, in this part, we will cover:
- What is Circuit Breaker Pattern ?
- Why to use Circuit Breaker ?
- How to implement Circuit Breaker pattern using Resilience4J and Spring Cloud Circuit Breaker
- Implement Circuit Breaker Pattern in API Gateway and Order Service
- Learn how to implement Timeout and Retry patterns
Рекомендации по теме
Комментарии
Автор

Resilience4j is a lightweight fault tolerance library inspired by Netflix Hystrix, but designed for functional programming.

Resilience4j provides higher-order functions (decorators) to enhance any functional interface, lambda expression or method reference with a Circuit Breaker, Rate Limiter, Retry or Bulkhead. You can stack more than one decorator on any functional interface, lambda expression or method reference. The advantage is that you have the choice to select the decorators you need and nothing else.

rishiraj
Автор

What is the point of configuring circuit breaker in order-service. As you haven't shown practical use of it, I am little confused, can you please tell me that?
Like I want to see circuit breaker is open or not in the case when order-service calls stopped inventory-service.

manaspurohit
Автор

Hi Sai. Thanks for the course. Fallback method is not getting called in my InventoryClient. After adding spring starter AOP dependencies only it works. JFYR

jeniferjayaraj
Автор

Thank you for everything! Could you please share your theme?

hacisimsek
Автор

HI Sai, in earlier video you have used the Feign client. But in this video the implementation is of RestClient

AmitDobal
Автор

Sai, No doubt your video contains quality but if you want real deal in YouTube, Pls add angular as frontend as well. May be it attracts masses due to output are visible in screen, or may be demand of full stack is on high. And videos are coming too late to adhere.. speed up buddy. I know you're working fellow & editing takes time, but you've potential to become one of the top project based youtuber.

aadiraj
Автор

can you make a video about integerating service discovery with gateway mvc ?

islamahmed
Автор

21:05
Either of the two should be sufficient (logically thinking), I guess:



Then why the circuit breaker configuration requires these both to be specified along with:


I mean:
What would be the behaviour of the setup when:
minimum-number-of-calls=6,
failureRateThreshold=40, and
slidingWindowSize=10

??

rishiraj
Автор

My all services are UP but then also fallback is getting called. I just created separate RestControllers for all service fallbacks and I also passing their URI correctly.
Any solution?

My Application.yml configurations for resilience4j :
# Actuator endpoints
management:
health:
circuitbreakers:
enabled: true
endpoints:
web:
exposure:
include:
- "*"
endpoint:
health:
show-details: always

# Resilinece4j Properties
resilience4j:
circuitbreaker:
configs:
default:
registerHealthIndicator: true
slidingWindowType: COUNT_BASED
slidingWindowSize: 10
failureRateThreshold: 50
waitDurationInOpenState: 5s
3
true
minimumNumberOfCalls: 5
timelimiter:
configs:
default:
timeoutDuration: 3s
retry:
configs:
default:
maxAttempts: 3
waitDuration: 2s

sairajnaikdhure
Автор

One question, please? Do we still need this Circuit Breaker if we already have service discovery? thanks.

liwen
Автор

Let say I run more than one product services. How the gateway knows how many product services are actually available?

ey