前言
Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。
Seata AT 模式:
一阶段:业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源。
二阶段:提交异步化,非常快速地完成。回滚通过一阶段的回滚日志进行反向补偿
Seata 官网使用介绍:
模拟场景
1.首先我们改造一下官网的代码,成为一个商品下单的代码
@GlobalTransactional
public void purchase(String userId, String commodityCode, int orderCount) {
try {
Product product = productService.getById(commodityCode);
if (product.getStock()-orderCount > 0) {
LocalDateTime now = LocalDateTime.now();
Account account = accountService.getByUserId(userId);
Orders orders = new Orders();
orders.setCreateTime(now);
orders.setProductId(p