准备:

启动注册中心;
启动redis ;
启动事务管理器 
启动mysql ;
启动微服务1 ;
启动微服务2

(1)正常事务测试:
不抛出异常,两边都插入

1 设计没有故障整合服务

@TxTransaction(isStart=true) 
    @Override
	@Transactional
	public int saveBlockTheme(Block block, Theme theme) {
		// return blockDao.saveBlock(name, blockDesc);

		int rs1 = blockDao.saveBlock("jwg1", "111");// 3 保存1

		int rs2 = themeClient.saveTheme("jwg2", "111", 1);// 4 保存2

		// int v = 100/0; //没有故障

		return rs1 + rs2;

	}
}

2 在浏览器输入:http://localhost:8020/saveBlockTheme
结果:
微服务分布式事务实战(十)分布式事务综合大测试(全,共10篇)
3 到数据库查看:
Block表
微服务分布式事务实战(十)分布式事务综合大测试(全,共10篇)

Theme表
微服务分布式事务实战(十)分布式事务综合大测试(全,共10篇)

两个库的表中都插入

(2)非正常事务测试
认为抛出异常,两边都不插入
1设计有故障服务

@TxTransaction(isStart=true) 
@Override
	@Transactional
	public int saveBlockTheme(Block block, Theme theme) {
		// return blockDao.saveBlock(name, blockDesc);
    		int rs1 = blockDao.saveBlock("jwg1", "111");// 3 保存1
    		int rs2 = themeClient.saveTheme("jwg2", "111", 1);// 4 保存2
    		 int v = 100/0; //故障
    		return rs1 + rs2;
    	}
}

2 在浏览器输入:http://localhost:8020/saveBlockTheme
微服务分布式事务实战(十)分布式事务综合大测试(全,共10篇)
3 去数据库查看
Block表
微服务分布式事务实战(十)分布式事务综合大测试(全,共10篇)
没有记录

Theme表
微服务分布式事务实战(十)分布式事务综合大测试(全,共10篇)
没有记录,说明回滚成功
总结:

通过10篇文章的论述,成功实现了基于springcloud分布式微服务的分布式事务管理设计,实现和测试。希望在黑暗中摸索的同学有些帮助。

相关文章:

  • 2021-04-07
  • 2022-01-17
  • 2021-08-03
  • 2021-12-21
  • 2021-11-26
  • 2022-02-08
  • 2021-09-09
  • 2021-04-17
猜你喜欢
  • 2021-09-26
  • 2022-01-06
  • 2022-01-01
  • 2022-01-12
  • 2021-07-31
  • 2021-12-17
  • 2021-11-14
相关资源
相似解决方案