Я изучаю откат распределенных транзакций с помощью Spring-Boot. Я использую весеннюю загрузку 2.2 с базой данных JPA и H2. В моем примере у меня есть три микросервиса, которые работают на разных портах с собственной базой данных H2.
MicroserviceA --- http://localhost: 2222 / savePersonBasicDetails
MicroserviceB --- http://localhost: 3333 / savePersonAddress
Микросервис C --- http://localhost: 4444 / savePersonHobbies
Из MicroserviceA, I получит 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.
}
Я пытался использовать @Transactional (rollbackFor = Exception.class) для метода save (), но транзакция не откатывается.
Пожалуйста, предложите.