Eclipse MicroProfile、Narayana LRA 与 Linux 容器技术详解
1. Eclipse MicroProfile 与 Narayana LRA 事务处理
1.1 LRA 基本概念与配置
LRA(Long Running Action)是处理长时间运行事务的一种机制。当设置 LRA.Type.REQUIRED
时,如果在 LRA 上下文之外调用方法,JAX - RS 过滤器会在方法调用期间开启一个新的 LRA,调用完成后,另一个 JAX - RS 过滤器会结束该 LRA。关键在于使用 @LRA
注解来处理 LRA 的生命周期。
同时,还定义了业务方法失败的情况,通过 cancelOn = {Response.Status.INTERNAL_SERVER_ERROR}
在返回 500 状态码时取消操作, cancelOnFamily = {Response.Status.Family.CLIENT_ERROR}
在返回任何 4xx 状态码时取消操作。
1.2 完成阶段(Complete Phase)
在完成阶段,LRA 协调器会调用带有 @Complete
注解的方法,以确保业务操作在数据状态上保持一致。以下是一个示例代码:
/**
* LRA complete method: it sets the final status of the football player off