rollback de transacciones distribuidas con Spring-Boot

Joemon:

Estoy aprendiendo rollback de transacciones distribuidas con la primavera-Boot. Estoy usando resorte de arranque 2.2 con la base de datos de la APP y H2. En mi ejemplo, tengo tres servicios de micro, que se ejecutan en diferentes puertos, con su propia base de datos H2.

MicroserviceA --- http: // localhost: 2222 / savePersonBasicDetails
MicroserviceB --- http: // localhost: 3333 / savePersonAddress
MicroserviceC --- http: // localhost: 4444 / savePersonHobbies

Desde el MicroserviceA, voy a tener person_id, que voy a enviar a los dos restantes microservicios junto con sus respectivos datos. Si cualquiera de los microservicios falla, entonces quiero deshacer la transacción completa.

Ejemplo:

Guardar (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.

}

Probé con @Transactional (rollbackFor = Exception.class) en el método Save (), pero la transacción no está retrasando.

sugerencia por favor.

Alexandar Petrov:

Usted está mezclando los términos. Transacción distribuida es un término asociado con RDBMS, no con webservices. Hay un servicio web estándar para transacciones a través de servicio web WS-transacción correspondiente a los servicios web de jabón. Sin embargo, esta norma es en su mayoría sin usar.

La termia usualy utilizado en el contexto de los servicios web es Operaciones de Compensación y se puede buscarla. Un patrón muy común para la compensación es el patrón de Try Cancelar Confirmar, también hay diferentes aproaches.

Si usted insiste en el uso de transacciones distribuidas echa un vistazo a este enlace: https://www.atomikos.com/Blog/TransactionalRESTMicroservicesWithAtomikos

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=373328&siteId=1
Recomendado
Clasificación