codingapi / codingapi/tx-lcn

SpringCloud + Feign 事务不回滚 解决方案

未关闭
#481 6 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

主要语言
Java
星标
4.2k
派生
1.4k
PR 合并指标
30 天内没有已合并 PR

描述

看issue发现很多人也有这个问题,我最近也碰到了,然后跟踪了一下源码,总算解决了。

下面给出我的解决步骤:

  1. 打开LCN Logger
    logging.level.com.codingapi.txlcn = debug

  2. 检查日志中是否包含以下log。如包含,转6
    com.codingapi.txlcn.tracing.Tracings : tracing apply group:693a5ae3226537.....

  3. 检查日志中的各服务log中groupId是否一致 。如一致,转6
    c.c.t.t.c.context.DefaultGlobalContext : Start TxContext[693a5ae3226537]

  4. 检查是否用了 @EnableWebMvc 注解。如用了,转6

  5. 添加MVC拦截器

public class WebMvcConfiguration extends WebMvcConfigurationSupport {
    .........其它配置省略...........
    public void addInterceptors(InterceptorRegistry registry) {
         registry.addInterceptor(new SpringTracingApplier());
    }
}
6. 结束

贡献指南

这个仓库没有索引到贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

调研方向

首先复现 issue 中描述的 Spring Cloud 和 Feign 事务回滚问题,然后启用 LCN debug logging,并比较各服务日志中的 tracing group IDs。检查是否存在 @EnableWebMvc,以及是否注册了 interceptor SpringTracingApplier;完成标准是识别并记录阻止回滚的条件,或确认所提供的 workaround。

由索引模型根据 Issue 内容生成。

评估

技术栈
java, spring
领域
backend, distributed-systems
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
需要澄清
新手友好度
25/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。