2.2. MicroProfile Fault Tolerance
2.2.1. MicroProfile Fault Tolerance 사양 정보 링크 복사링크가 클립보드에 복사되었습니다!
MicroProfile Fault Tolerance 사양은 분산 마이크로 서비스에 내재된 오류를 처리하는 전략을 정의합니다.
MicroProfile Fault Tolerance 사양은 오류를 처리하기 위한 다음 전략을 정의합니다.
- Timeout
- 실행을 완료해야 하는 시간을 정의합니다. 시간 초과를 정의하면 실행이 무기한 대기되지 않습니다.
- Retry
- 실패한 실행을 재시도하는 기준을 정의합니다.
- 폴백
- 실행에 실패한 경우 대안을 제공합니다.
- CircuitBreaker
- 일시적으로 중지되기 전에 실패한 실행 시도 수를 정의합니다. 실행을 다시 시작하기 전에 지연의 길이를 정의할 수 있습니다.
- Bulkhead
- 시스템의 나머지 부분이 계속 작동할 수 있도록 오류를 격리합니다.
- 비동기
- 별도의 스레드에서 클라이언트 요청을 실행합니다.
2.2.2. JBoss EAP의 MicroProfile Fault Tolerance 링크 복사링크가 클립보드에 복사되었습니다!
microprofile-fault-tolerance-undercloudrye 하위 시스템은 JBoss EAP에서 MicroProfile Fault Tolerance를 지원합니다. 하위 시스템은 JBoss EAP XP 스트림에서만 사용할 수 있습니다.
microprofile-fault-tolerance-undercloudrye 하위 시스템은 인터셉터 바인딩에 대해 다음과 같은 주석을 제공합니다.
-
@timeout -
@Retry -
@Fallback -
@CircuitBreaker -
@Bulkhead -
@Asynchronous
이러한 주석은 클래스 수준 또는 메서드 수준에서 바인딩할 수 있습니다. 클래스에 바인딩된 주석은 해당 클래스의 모든 비즈니스 메서드에 적용됩니다.
다음 규칙은 바인딩 인터셉터에 적용됩니다.
구성 요소 클래스가 클래스 수준 인터셉터 바인딩을 선언하거나 상속하는 경우 다음과 같은 제한 사항이 적용됩니다.
- 클래스는 final로 선언해서는 안 됩니다.
- 클래스에는 정적, 개인 또는 최종 메서드가 포함되어 있지 않아야 합니다.
- 구성 요소 클래스의 비정적, 비개인적 메서드의 메서드 수준 인터셉터 바인딩을 선언하는 경우 메서드 및 구성 요소 클래스를 final로 선언할 수 없습니다.
내결함성 작업에는 다음과 같은 제한 사항이 있습니다.
- fault tolerance interceptor 바인딩은 Quarkus 클래스 또는 Cryostat 클래스 메서드에 적용해야 합니다.
- 호출 시 호출은 Jakarta 컨텍스트 및 종속성 사양에 정의된 비즈니스 메서드 호출이어야 합니다.
다음 두 조건이 모두 true인 경우 작업이 내결함성으로 간주되지 않습니다.
- 방법 자체는 내결함성 인터셉터에 바인딩되지 않습니다.
- 메서드를 포함하는 클래스는 내결함성 인터셉터에 바인딩되지 않습니다.
microprofile-fault-tolerance-undercloudrye 하위 시스템은 MicroProfile Fault Tolerance에서 제공하는 구성 옵션 외에도 다음과 같은 구성 옵션을 제공합니다.
-
io.smallrye.faulttolerance.mainThreadPoolSize -
io.smallrye.faulttolerance.mainThreadPoolQueueSize