seata

发布时间 2023-05-31 10:57:53作者: mty072788
  1. 引依赖:spring-cloud-starter-alibaba-seata

  2. 配置文件:
    seata:
    registry: # TC服务注册中心的配置,微服务根据这些信息去注册中心获取tc服务地址

    参考tc服务自己的registry.conf中的配置

    type: nacos
    nacos: # tc
    server-addr: 192.168.211.133:8848
    namespace: ""
    group: DEFAULT_GROUP
    application: seata-tc-server # tc服务在nacos中的服务名称
    cluster: SH
    tx-service-group: seata-demo # 事务组,根据这个获取tc服务的cluster名称
    service:
    vgroup-mapping: # 事务组与TC服务cluster的映射关系
    seata-demo: SH
    data-source-proxy-mode: AT

  3. AT 模式需要一个表来记录全局锁,另一张表来记录数据快照 undo_log;
    undo_log(快照表)导入到微服务关联的数据库(RM关联:账户、库存),lock_table(全局锁表)导入到TC服务关联的数据库(TM关联:订单)

  4. 在TM(事务管理者),方法上加全局事务注解 @GlobalTransaction, 其他的"子事务"就直管本地事务即可(@Transaction ,spring提供的事务注解)