【发布时间】:2019-04-08 15:26:36
【问题描述】:
我有基于微服务构建的 Spring Boot 项目,并使用 KONG 作为 api-gateway。所有服务都在 Docker 容器中。
在我的情况下,我使用 jdbcTemplate 使用 serviceA 循环 20 次请求删除 serviceB 中的记录。前 10 个请求成功。因此 serviceB 中的 postgresql 数据库中删除了 10 条记录。但是第 11 个请求是错误的。所以我想回滚从数据库中成功删除的所有 10 条记录。
我的问题是在这种情况下我可以回滚吗?如果可以回滚,我该怎么办?我应该使用哪种技术?在这种情况下我可以使用 Spring Cloud Stream 和 Kafka 来回滚吗?
【问题讨论】:
-
不,你不能回滚,只有当一切都在一个事务中时,你才能回滚。因此,您可能需要通过手动恢复记录或不循环但有可能一次性删除所有内容来弥补这一点。
-
感谢您的支持。
标签: postgresql spring-boot apache-kafka microservices spring-cloud-stream