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

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

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

展开
收起
cuicuicuic 2023-04-10 22:28:07 188 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
    赞同 展开评论 打赏

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

相关电子书

更多
PostgresChina2018_赖思超_PostgreSQL10_hash索引的WAL日志修改版final 立即下载
Kubernetes下日志实时采集、存储与计算实践 立即下载
日志数据采集与分析对接 立即下载