启动注册中心,启动redis ,启动事务管理器 启动mysql 启动微服务1 ,启动微服务2 ** (1)正常事务测试:** 不抛出异常,两边都插入
1 设计没有故障整合服务 @TxTransaction(isStart=true) //关键 4
@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 结果:
3 到数据库查看: Block表
Theme表
两个库的表中都插入
(2)非正常事务测试 认为抛出异常,两边都不插入 1设计有故障服务 @TxTransaction(isStart=true) //关键 4
@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 3 去数据库查看 Block表 没有记录
Theme表
**没有记录,说明回滚成功 **
总结: 通过10篇文章的论述,成功实现了基于springcloud分布式微服务的分布式事务管理设计,实现和测试。希望在黑暗中摸索的同学有些帮助。