【发布时间】:2020-07-07 02:31:47
【问题描述】:
我正在学习使用 Spring-Boot 进行分布式事务回滚。 我正在使用带有 JPA 和 H2 数据库的 spring-boot 2.2。 在我的示例中,我有三个运行在不同端口上的微服务,它们都有自己的 H2 数据库。
微服务A --- http://localhost:2222/savePersonBasicDetails
微服务B --- http://localhost:3333/savePersonAddress
微服务C --- http://localhost:4444/savePersonHobbies
从 MicroserviceA 中,我将获得 Person_Id,并将其连同它们各自的数据一起发送给其余两个微服务。如果任何一个微服务失败,那么我想回滚整个事务。
示例:
保存(PersonVO personVO){
Integer personId = microserviceA.savePersonBasicDetails(personVO);
microserviceB.savePersonAddress(personId, personVO);
microserviceC.savePersonHobbies(personId, personVO);//If it fails in microserviceC,
//then the complete transaction should be rolled back.
}
我尝试在 save() 方法上使用 @Transactional(rollbackFor = Exception.class),但事务没有回滚。
请提出建议。
【问题讨论】:
标签: java spring-boot web-services microservices xa