开发者社区 > 云原生 > 中间件 > 正文

Seata不代理数据源,怎么拦截sql,存储事务日志呢?没有事务日志就没办法找原始sql和前后像回滚

Seata不代理数据源,怎么拦截sql,存储事务日志呢?没有事务日志就没办法找原始sql和前后像回滚

展开
收起
真的很搞笑 2023-04-10 22:28:07 208 0
1 条回答
写回答
取消 提交回答
  • 坚持这件事孤独又漫长。

    可以通过以下三个步骤来拦截SQL并存储事务日志:

    1. 使用Seata官方提供的DataSourceProxy类代理您的数据源。该类可以将数据源与Seata框架整合,以便进行分布式事务管理。

    2. 在您的项目中添加Seata提供的Filter,例如ServerTransactionControlFilter和ClientATFilter,以便将资源管理器和事务参与者与Seata交互。在Filter中,您可以拦截SQL并将其存储到事务日志中。

    3. 如果您的数据源不支持XA事务,可以考虑使用TCC事务模式。在TCC模式下,您可以通过在try、confirm和cancel阶段中手动执行提交和回滚,来管理分布式事务。

    2023-04-11 08:54:30
    赞同 展开评论 打赏

为企业提供高效、稳定、易扩展的中间件产品。

相关电子书

更多
Python 系列直播——深入Python与日志服务,玩转大规模数据分析处理实战第二讲 立即下载
Python第四讲——使用IPython/Jupyter Notebook与日志服务玩转超大规模数据分析与可视化 立即下载
大规模日志数据平台架构面临的问题与挑战 立即下载