spring cloud 事物测试

2018-11-18  本文已影响0人  remexs

熔断事物测试


前提:现有事物测试范例 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 可以回归,

如果应为网络等其他原因

上一篇 下一篇

猜你喜欢

热点阅读