微服务容错及可观测性技术实践
1. 断路器与容错机制
1.1 断路器定义与异常处理
为特定操作定义断路器。当断路器打开时,会抛出 org.eclipse.microprofile.faulttolerance.exceptions.CircuitBreakerOpenException
异常。
1.2 组合使用注解
@CircuitBreaker
可与 @Timeout
、 @Fallback
、 @Bulkhead
或 @Retry
混合使用,但需注意以下几点:
- 若使用 @Fallback
,当抛出 CircuitBreakerOpenException
时,将执行回退逻辑。
- 若使用 @Retry
,每次重试都会由断路器处理,并记录为成功或失败。
- 若使用 @Bulkhead
,在尝试进入隔离舱之前会检查断路器状态。
1.3 禁用容错机制
可通过特殊参数全局或单独启用或禁用容错逻辑,示例如下:
org.acme.quickstart.ServiceInvoker/getHelloCircuitBreaker/CircuitBreaker/enabled=false # 方法级别禁用
o