SpringCloud + Feign 事务不回滚 解决方案
看issue发现很多人也有这个问题,我最近也碰到了,然后跟踪了一下源码,总算解决了。
下面给出我的解决步骤:
-
打开LCN Logger
logging.level.com.codingapi.txlcn = debug -
检查日志中是否包含以下log。如包含,转6
com.codingapi.txlcn.tracing.Tracings : tracing apply group:693a5ae3226537..... -
检查日志中的各服务log中groupId是否一致 。如一致,转6
c.c.t.t.c.context.DefaultGlobalContext : Start TxContext[693a5ae3226537] -
检查是否用了 @EnableWebMvc 注解。如用了,转6
-
添加MVC拦截器
public class WebMvcConfiguration extends WebMvcConfigurationSupport {
.........其它配置省略...........
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new SpringTracingApplier());
}
}
6. 结束
你好,我是分了多个数据库,在调用是发现两个服务的groupId不同,但是事务还是可以正常回滚,请问这样正常吗,,
@beichenhpy groupId不一致的话就是没用同一个分布式事务,还能正常回滚应该是不正常的
我是用最新版本后,开启hystrix:enable 发现无法正常回滚,然后使用你的方法,同样无效
@beichenhpy 那你调试一下吧,SpringTracingApplier 、TracingHystrixConcurrencyStrategy 看这两个方法相关方法有没有执行
我的groupid一样, 但是不能回滚
我的groupid一样, 但是不能回滚
请问你解决了吗