Tcc user

Seata TCC模式应用场景与解决方案总结

一、TCC模型核心优势 1. 跨服务事务协调
• 适用于SOA架构下的服务化场景,保障跨多服务的业务操作原子性(如交易、支付、账务服务协作)。

  1. 两阶段异步化
    • 拆分事务为Try-Confirm/Cancel两阶段,减少资源锁竞争时间,提升并发性能。

• 允许第二阶段异步执行,缓解热点资源压力(如担保交易异步划拨资金)。


二、三种TCC解决方案及适用场景

  1. 通用型TCC解决方案
    • 模式特点

◦ 所有从业务服务同步参与主事务决策,需完整实现Try/Confirm/Cancel接口。

◦ 保障强一致性,适用于执行时间短且确定的业务。

• 适用场景

◦ 多服务需严格原子性协作的场景(如支付流程:创建订单→扣款→记账)。

◦ 案例:电商交易中,交易服务协调支付和账务服务,确保支付成功且资金正确流转。

  1. 异步确保型TCC解决方案
    • 模式特点

◦ 引入可靠消息服务解耦主业务与从业务,通过消息异步传递结果。

◦ 消息服务实现TCC接口(预存消息→确认发送→删除消息),从业务服务被动消费消息。

• 适用场景

◦ 对一致性时效要求较低的场景,主业务无需等待从业务结果(如注册后发送邮件)。

◦ 案例:会员注册成功后,通过消息服务异步触发邮件发送,避免阻塞主流程。

  1. 补偿型TCC解决方案
    • 模式特点

◦ 从业务仅需实现Do(业务操作)和Compensate(补偿)接口,无隔离性保障。

◦ 依赖事后补偿机制,存在补偿失败风险,需人工兜底。

• 适用场景

◦ 依赖外部服务且无法改造的场景(如多航司机票预订)。

◦ 案例:代理平台调用外部航司接口订票,失败时触发补偿取消已订票务。

注:选择方案时需权衡业务特性(强一致性需求、执行时长、外部依赖),结合Seata能力实现最佳实践。