分布式事务seata实践-AT模式

1 篇文章 0 订阅
1 篇文章 0 订阅

分布式事务seata实践-AT模式:

[官方对于AT模式的解释](https://seata.io/zh-cn/docs/dev/mode/at-mode.html)

一阶段:业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源。
二阶段:
提交异步化,非常快速地完成。
回滚通过一阶段的回滚日志进行反向补偿。

个人理解:从实际demo代码来看同时增加了 @GlobalTransactional、@Transactional 注解,即使去掉@Transactional 也不影响事务的执行。GlobalTransactional掌管了全局事务的提交和回滚。


nacos搭建:

使用版本 2.1.2,支持注册中心和配置中心。可以使用其config功能,不过功能比较其他配置中心繁琐。

nacos集成springcloud官方文档

seata搭建:

使用版本 1.5.2,支持AT模式,支持框架日志数据存储到Redis。

seata官方快速开始文档
官方seata实际应用demo

实际应用场景:

  1. 搭建nacos,去官网下载,执行脚本startup.sh即可启动,访问8848端口使用web服务,用户密码同nacos。
  2. 搭建seata server端,官网下载,修改其application.yml文件使其注册到nacos。
  3. 业务场景测试,事务开始 ------> 创建订单-----> 进销存扣库存--------> 事务完成。
server:
  port: 7091

spring:
  application:
    name: seata-server

logging:
  config: classpath:logback-spring.xml
  file:
    path: ${user.home}/logs/seata
  extend:
    logstash-appender:
      destination: 127.0.0.1:4560
    kafka-appender:
      bootstrap-servers: 127.0.0.1:9092
      topic: logback_to_logstash

console:
  user:
    username: seata
    password: seata
# 此处修改seata的注册中心类型和注册中心的信息,主要参考 application.example.yml,官方文档比较繁琐,不容易懂。
seata:
  config:
    # support: nacos, consul, apollo, zk, etcd3
    type: file
  registry:
    # support: nacos, eureka, redis, zk, consul, etcd3, sofa,file
    type: nacos
    server-addr: 127.0.0.1:8848
    namespace:
    group: SEATA_GROUP
  store:
    # support: file 、 db 、 redis
    mode: file
#  server:
#    service-port: 8091 #If not configured, the default is '${server.port} + 1000'
  security:
    secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017
    tokenValidityInMilliseconds: 1800000
    ignore:
      urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/api/v1/auth/login

此处修改seata的注册中心类型和注册中心的信息,主要参考 application.example.yml,官方的文档描述不是很清楚。


伪代码:



总结:

Seata实际业务模型
Nacos架构

国产的开源框架越来越趋于简单配置、开箱即用,这是一个很好的迹象。说明国内的IT事业发展的水平越来越高。nacos和seata远不止博文这么点功能。需要更多的探索发现。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值