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

为什么Seata看日志感觉AT的一些后台任务默认被启动了?

为什么Seata看日志感觉AT的一些后台任务默认被启动了?

展开
收起
青城山下庄文杰 2023-07-21 16:08:53 59 0
3 条回答
写回答
取消 提交回答
  • 在 Seata 的 AT(自动补偿型)模式中,确实存在一些后台任务默认启动的情况。这些后台任务主要用于管理和执行事务的补偿操作,以确保分布式事务的一致性。

    下面是几个常见的后台任务:

    1. TransactionLogPruningTask:该任务负责定期清理过期的事务日志,以释放存储空间并提高性能。

    2. AsyncWorker:该任务负责异步执行事务的补偿操作。当某个分支事务提交失败时,Seata 会将相应的补偿逻辑添加到 AsyncWorker 中进行异步执行,以尝试回滚已提交的分支事务。

    3. RetryRollbackingTask:该任务负责定期重试处于回滚中状态的分支事务,以确保最终回滚成功。

    这些后台任务默认是启动的,以满足 AT 模式下事务的自动补偿需求。它们在后台运行,自动处理事务的补偿操作,减轻了开发人员的工作负担。

    如果您对这些后台任务的执行频率、配置或其他参数有特定的需求,可以通过修改 Seata 的配置文件来进行调整。具体的配置项和说明可以参考 Seata 的官方文档。

    2023-07-28 10:55:52
    赞同 展开评论 打赏
  • tc定时下发默认7天一次,如果你重启tc的话我记得应该是会直接下发-此回答整理自钉群“3群-Seata 开源讨论群”

    2023-07-24 12:39:13
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    Seata的日志信息显示AT(自动提交)相关的后台任务被默认启动,可能的原因有以下几种:

    tatsächlich自动提交模式
    如果你的Seata实际配置为自动提交(AT)模式,那么相关的后台任务会默认启动。

    比如事务管理器(TM)的配置为:

    xml
    Copy


    那么持久化队列就会自动启动。

    测试和示例代码
    有些Seata的测试代码或示例,默认就是自动提交模式。

    这时后台任务也会随之启动。

    但这仅仅是为了演示,实际项目一般不这么用。

    旧版本的默认行为
    较早期的Seata版本,自动提交相关的后台任务是默认启动的。

    但从1.3.0开始,这已经不是默认行为了。

    配置错误
    你的业务代码配置为手动提交,但配置存在错误,还是当作了自动提交处理。

    这时也会看到AT模式下的后台任务被启动。

    2023-07-23 18:06:39
    赞同 展开评论 打赏
问答分类:
问答地址:

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

相关电子书

更多
Python第四讲——使用IPython/Jupyter Notebook与日志服务玩转超大规模数据分析与可视化 立即下载
大规模日志数据平台架构面临的问题与挑战 立即下载
PostgresChina2018_赖思超_PostgreSQL10_hash索引的WAL日志修改版final 立即下载