2.2. MicroProfile Fault Tolerance
2.2.1. 关于 MicroProfile Fault Tolerance 规范 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
MicroProfile 容错规范定义了处理分布式微服务中固有错误的策略。
MicroProfile Fault Tolerance 规范定义了以下策略来处理错误:
- Timeout(超时)
- 定义执行必须完成的时间。定义超时可防止无限期等待执行。
- Retry
- 定义重试失败执行的条件。
- fallback
- 在执行失败时提供替代方法。
- CircuitBreaker
- 定义在临时停止前失败的执行尝试数量。您可以在恢复执行前定义延迟的长度。
- 壁壁
- 在系统的一部分隔离故障,以便系统的其余部分仍然可以正常工作。
- 异步
- 在单独的线程中执行客户端请求。
2.2.2. JBoss EAP 中的 MicroProfile Fault Tolerance 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
microprofile-fault-tolerance-smallrye
子系统为 JBoss EAP 中的 MicroProfile Fault Tolerance 提供支持。该子系统仅适用于 JBoss EAP XP 流。
microprofile-fault-tolerance-smallrye
子系统为拦截器绑定提供以下注解:
-
@Timeout
-
@Retry
-
@Fallback
-
@CircuitBreaker
-
@bulkhead
-
@Asynchronous
您可以在类级别或方法级别绑定这些注解。与类绑定的注解适用于该类的所有业务方法。
以下规则适用于绑定拦截器:
如果组件类声明或继承类级拦截器绑定,则应用以下限制:
- 不得声明该类。
- 类不得包含任何静态、私有或最终方法。
- 如果组件类的非静态的、非专用方法声明方法级拦截器绑定,则方法和组件类都不会被声明。
容错操作有以下限制:
- 容错拦截器绑定必须应用到 bean 类或 bean 类方法。
- 调用时,调用必须是 Jakarta 上下文和依赖注入规范中定义的业务方法调用。
如果这两个条件都满足,则操作不会被视为容错性:
- 方法本身不绑定到任何容错拦截器。
- 包含方法的类没有绑定到任何容错拦截器。
microprofile-fault-tolerance-smallrye
子系统还提供以下配置选项,以及 MicroProfile Fault Tolerance 提供的配置选项:
-
io.smallrye.faulttolerance.mainThreadPoolSize
-
io.smallrye.faulttolerance.mainThreadPoolQueueSize