业务拦截

业务发起拦截

  • 业务系统集成txle的关键一步是业务发起方法上添加注解@SagaStart,代表该方法使用全局事务。

  • txle将会对带有@SagaStart注解的所有方法进行拦截。

  • 拦截业务后,开启全局事务,并将其交由事务管理器进行管理

  • 接着,执行业务发起函数中的相关子业务程序。

    ps:开关全局事务/子事务均需交由事务管理器进行管理。

子业务拦截

  • 业务系统集成txle关键的第二步是在子业务方法上添加注解@Compensable或@AutoCompensable,代表该子业务方法使用全局事务的手动补偿或自动补偿功能。
  • txle将会对带有@Compensable或@AutoCompensable注解的所有方法进行拦截。
  • 拦截子业务方法后,开启全局事务下的子事务,并与当前全局事务进行关联。
  • 接着,执行子业务中的相关程序(如操作数据库等)。
  • 每个子业务执行完成后,需关闭当前子业务对应的子事务。
  • 待所有子业务均执行完成后,关闭全局事务,整个全局事务视为完成。

SQL拦截

    全局事务除了对业务方法进行拦截,还会对业务执行的SQL进行拦截,但不会影响业务SQL的正常执行,主要是为了实现自动补偿机制,以及统计SQL的耗时,便于系统性能排查。

results matching ""

    No results matching ""