熔断事物测试
前提:现有事物测试范例 transaction -demo-1(A),transaction -demo-2(B),在不使用任何事物框架前提下,并测试范例并未做统一异常处理。直接使用测试熔断事物是否回滚。
测试A保存调用B保存即A->B
测试 A:成功,B失败,事物是否回滚。
结果:A,B 事物都已回滚
测试 A:失败,B成功,事物是否回滚。
A已回滚,B未回滚。
问题,A->B,A成功,B失败,AB会回滚,而A-B,A失败,B不回滚。
理解为,A->B ,A成功,B失败,B是本身的事物回滚,A是在同一个事物中调用B,B有异常导致A事物回滚。而A失败,B成功,A是本身事物回滚,不会影响B的事物。那么像这种,在逻辑上应该同属于一个事物组,如何实现AB事物同步回滚?
LCN事物测试
基于上面已经测试过的,如果有熔断介入,只有第三种情况才事物才不会回滚,此处只测试A失败和B失败的情况
A:失败,B成功
代码同上
以上测试是基于AB本身并未做统一异常拦截的情况下测试。但还有一种情况,AB分别有自己的异常处理。那么feign调用本身不会报错。那么事物框架是否还会回滚?
以下是测试AB加上统一测试处理的情况。
测试A:失败,B成功
代码同上
此种情况LCN 可以回归,
如果应为网络等其他原因